public Object getValue(final OIdentifiable iRecord, Object iCurrentResult, OCommandContext iContext) { final ODocument doc = ((ODocument) iRecord); if (names.size() == 1) return transformValue(iRecord, iContext, ODocumentHelper.getIdentifiableValue(iRecord, names.get(0))); final String[] fieldNames = doc.fieldNames(); final Object[] values = new Object[fieldNames.length]; collates.clear(); for (int i = 0; i < values.length; ++i) { values[i] = doc.field(fieldNames[i]); collates.add(getCollateForField(clazz, fieldNames[i])); } if (hasChainOperators()) { // TRANSFORM ALL THE VALUES for (int i = 0; i < values.length; ++i) values[i] = transformValue(iRecord, iContext, values[i]); } return new OQueryRuntimeValueMulti(this, values, collates); } }
public OSQLFilterItemFieldMultiAbstract(final OSQLPredicate iQueryCompiled, final String iName, final OClass iClass, final List<String> iNames) { super(iQueryCompiled, iName); names = iNames; clazz = iClass; for (String n : iNames) { collates.add(getCollateForField(iClass, n)); } }