case VARIABLE: if (prevType instanceof ArrayDataType) { out.append("[$").append(entry.getVariableName()).append("]"); } else if (prevType instanceof WeightedSetDataType || prevType instanceof MapDataType) { out.append("{$").append(entry.getVariableName()).append("}"); } else { out.append("$").append(entry.getVariableName());
public String toString() { String retVal = type.toString() + ": "; switch (type) { case STRUCT_FIELD: retVal += getFieldRef(); break; case ARRAY_INDEX: retVal += getLookupIndex(); break; case MAP_KEY: retVal += getLookupKey(); break; case MAP_ALL_KEYS: case MAP_ALL_VALUES: break; case VARIABLE: retVal += getVariableName(); break; } return retVal; }
return iterateSubset(elemIndex, elemIndex, fieldPath, null, pos + 1, handler); case VARIABLE: { FieldPathIteratorHandler.IndexValue val = handler.getVariables().get(fieldPath.get(pos).getVariableName()); if (val != null) { int idx = val.getIndex(); return iterateSubset(0, values.size() - 1, fieldPath, fieldPath.get(pos).getVariableName(), pos + 1, handler);
case VARIABLE: FieldPathIteratorHandler.IndexValue idx = handler.getVariables().get(fieldPath.get(pos).getVariableName()); if (idx != null) { FieldValue val = values.get(idx.getKey()); handler.getVariables().put(fieldPath.get(pos).getVariableName(), new FieldPathIteratorHandler.IndexValue(entry.getKey())); wasModified = checkAndRemove(entry.getKey(), entry.getValue().iterateNested(fieldPath, pos + 1, handler), wasModified, keysToRemove); handler.getVariables().remove(fieldPath.get(pos).getVariableName());