protected int getColumn(DataSet dataSet, Object obj) throws Exception { if (obj instanceof Integer) { Integer index = (Integer) obj; return index; } else if (obj instanceof String) { String name = (String) obj; int index = DataSetUtil.getFieldIndex(dataSet, name); return index; } return -1; }
public boolean isMatch(Object object, Object name) { if(object instanceof DataSet && name instanceof String){ DataSet dataSet = (DataSet) object; try { return DataSetUtil.getFieldIndex(dataSet, (String)name) >=0; } catch (Exception e) { return false; } } return false; }
/** * 返回一组索引字段对应的列 * * @param fields * @param colNames * @return * @throws Exception */ public static int[] getFieldIndex(List<Field> fields, String[] colNames) throws Exception { int[] cols = new int[colNames.length]; for (int i = 0; i < colNames.length; i++) { cols[i] = getFieldIndex(fields, colNames[i]); } return cols; }
/** * 批量转换主键(string→int) * * @param dataSet * @param pks * @return * @throws Exception */ @SuppressWarnings("unchecked") protected List<Integer> showPkIndex(DataSet dataSet, Object pks) throws Exception { List<Integer> pksIndex = new ArrayList<Integer>(); if (pks instanceof List) { for (String pk : (List<String>) pks) { int pkIndex = DataSetUtil.getFieldIndex(dataSet, pk); if (pkIndex != -1) { pksIndex.add(pkIndex); } } } else if (pks instanceof String) { int pkIndex = DataSetUtil.getFieldIndex(dataSet, (String) pks); if (pkIndex != -1) { pksIndex.add(pkIndex); } } return pksIndex; }
private int getFieldIndex(DataSet dataSet, String name) throws Exception { int index = DataSetUtil.getFieldIndex(dataSet, name); return dataSet.isIndexFromOne() ? index + 1 : index; }
/** * 用户指定DataSet和Class的字段关联 * @param dataSet * @param clazz * @param relation * @return * @throws Exception */ private List<Object> toListBean(AbstractDataSet dataSet,Class<?> clazz,Map<String,String> relation) throws Exception{ //字段名和序表列的映射关系 Map<String,Integer> map = new HashMap<String,Integer>(); for(Entry<String, String> entry:relation.entrySet()){ String colName = entry.getKey(); int index = DataSetUtil.getFieldIndex(dataSet, colName); if(index<0){ throw new ScriptException( ResourceBundleUtil.getResourceMessage("dataset", "dataset.fields.notfound", colName)); } map.put(entry.getValue(), dataSet.getShowIndex(index)); } return toListObject(dataSet,clazz,map); }
protected int getColumn(DataSet dataSet, Object obj) throws Exception { if (obj instanceof Integer) { Integer index = (Integer) obj; return index; } else if (obj instanceof String) { String name = (String) obj; int index = DataSetUtil.getFieldIndex(dataSet, name); if (index >= 0) { return index; } else { if (dataSet instanceof GroupDataSet) { GroupDataSet groupDataSet = (GroupDataSet) dataSet; List<AggregateResult> result = groupDataSet.getAggregateResultList(); for (int i = 0; i < result.size(); i++) { if (name.equals(result.get(i).getName())) { return groupDataSet.getFields().size() + i; } } } } } return -1; }
@SuppressWarnings("rawtypes") private DataNode toTree(AbstractDataSet dataSet, String id, String parentId) throws Exception { int idCol = DataSetUtil.getFieldIndex(dataSet, id); int parentIdCol = DataSetUtil.getFieldIndex(dataSet, parentId);
if(linkMap.containsKey(ns)){ String colName = linkMap.get(ns); int index = DataSetUtil.getFieldIndex(dataSet, colName); if(index<0){ throw new ScriptException(
protected int[] getShowColumns(DynamicDataSet dataSet, String[] fields) throws Exception { int[] columns = DataSetUtil.getFieldIndex(dataSet.getFields(), fields); int[] showColumns = new int[columns.length]; for (int i = 0; i < columns.length; i++) { if (columns[i] < 0) { throw new ScriptException( ResourceBundleUtil.getResourceMessage("dataset", "dataset.fields.notfound", fields[i])); } showColumns[i] = dataSet.getShowIndex(columns[i]); } return showColumns; }
private int getIndex(DataSet dataSet, Object obj) throws Exception { if (obj instanceof Integer) { return (Integer) obj; } else if (obj instanceof String) { String colName = (String) obj; int index = DataSetUtil.getFieldIndex(dataSet, colName); if (index < 0) { throw new ScriptException( ResourceBundleUtil.getResourceMessage("dataset", "dataset.fields.notfound", colName)); } return index; } else { throw new ScriptException( ResourceBundleUtil.getDefaultMessage("function.parameter.unsupport", getNames(), obj.getClass())); } }
protected Object executeGroupDataSet(GroupDataSet groupDataSet, String fieldName, String functionName, Object... params) throws Exception { String aggregateName = createAggregateName(functionName, fieldName); groupDataSet.createAggregateResult(aggregateName, groupDataSet.getFields().get(DataSetUtil.getFieldIndex(groupDataSet, fieldName)), functionName, params); int col = getColumn(groupDataSet, fieldName); for (int i = 0; i < groupDataSet.getRows(); i++) { DynamicDataSet subDataSet = groupDataSet.getGroups().get(i); Object value = executeAggregate(subDataSet, col, functionName, params); groupDataSet.setData(groupDataSet.getShowIndex(i), aggregateName, value); } return groupDataSet; }
protected DataSet executeJoin(AbstractDataSet left, AbstractDataSet right, String[] leftColNames,String[] rightColNames) throws ScriptException { try { int[] leftColumns = getShowIndexs(left,DataSetUtil.getFieldIndex(left.getFields(), leftColNames)); int[] rightColumns = getShowIndexs(right,DataSetUtil.getFieldIndex(right.getFields(), rightColNames)); // 记录关联行信息 List<int[]> joinList = joinTwoDataSet(left,right,leftColumns,rightColumns); return new MatchDataSet(left, right, joinList, getScriptEngine().isIndexFromOne()); } catch (Exception e) { throw new ScriptException(ResourceBundleUtil.getDefaultMessage("function.run.error", getNames()), e); } }
for (int i = 1; i < parameters.length; i++) { if (parameters[i] instanceof String) { int col = DataSetUtil.getFieldIndex(dataSet, (String) parameters[i]); if (col < 0) { noFieldStart = i;
/** * 解析字段信息 * * @param s * @return * @throws Exception */ private FieldSortRule parse(String s, DataSet dataSet) throws Exception { FieldSortRule rule = null; if (!StringUtil.isEmpty(s)) { String[] ss = s.trim().split("\\s+"); rule = new FieldSortRule(); if (ss.length >= 2 && ss[1].equalsIgnoreCase("desc")) { rule.setAsc(false); } else { rule.setAsc(true); } rule.setContextName(DEFAULT_CONTEXT_NAME); int index = DataSetUtil.getFieldIndex(dataSet, ss[0]); if (index < 0) { throw new ScriptException( ResourceBundleUtil.getResourceMessage("dataset", "dataset.fields.notfound", ss[0])); } rule.setIndex(index); rule.setSegment(createDataSetSegment(rule, dataSet)); } return rule; }
private DataSet insert(DynamicDataSet dataSet1, DynamicDataSet dataSet2) throws Exception { for (int i = 0; i < dataSet2.getRows(); i++) { dataSet1.insertRow(dataSet1.getShowIndex(dataSet1.getRows())); for (int j = 0; j < dataSet1.getFields().size(); j++) { int fieldIndex = DataSetUtil.getFieldIndex(dataSet2, dataSet1.getFields().get(j).getName()); if (fieldIndex > -1) { Object data = dataSet2.getData(dataSet2.getShowIndex(i), dataSet2.getShowIndex(fieldIndex)); dataSet1.setData(dataSet1.getShowIndex(dataSet1.getRows() - 1), dataSet1.getShowIndex(j), data); } } } return dataSet1; }
protected Object process(ScriptContext context, Object obj, Object item) throws Exception { DataSetRow dataSetRow = (DataSetRow) obj; if(DataSetUtil.isField(item,context)){ if(item instanceof String && DataSetUtil.getFieldIndex(dataSetRow.getFields(), (String)item)>-1){ String colName = (String)item; return dataSetRow.getData(colName); }else{ String colName = (String)DataSetUtil.getValue(item,context); return dataSetRow.getData(colName); } }else{ int col = (Integer)DataSetUtil.getValue(item,context); return dataSetRow.getData(col); } }
int index = DataSetUtil.getFieldIndex(dataSet, (String) obj); if (index < 0) { throw new ScriptException(
int leftColumn = DataSetUtil.getFieldIndex(left, fields[0]); if (leftColumn < 0) { throw new ScriptException( int rightColumn = DataSetUtil.getFieldIndex(right, fields[1]); if (rightColumn < 0) { throw new ScriptException(
int col = DataSetUtil.getFieldIndex(dataSet, colName); if (col < 0) { throw new ScriptException(