public OArraySingleValuesSelector copy() { OArraySingleValuesSelector result = new OArraySingleValuesSelector(-1); result.items = items.stream().map(x -> x.copy()).collect(Collectors.toList()); return result; }
private Object calculateValue(Object item, Object index) { if (index instanceof Integer) { return OMultiValue.getValue(item, ((Integer) index).intValue()); } else if (item instanceof Map) { return ((Map) item).get(index); } else if (item instanceof OElement && index instanceof String) { return ((OElement) item).getProperty((String) index); } else if (OMultiValue.isMultiValue(item)) { Iterator<Object> iter = OMultiValue.getMultiValueIterator(item); List<Object> result = new ArrayList<>(); while (iter.hasNext()) { result.add(calculateValue(iter.next(), index)); } return null; } else { return null; } }
@Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; OModifier oModifier = (OModifier) o; if (squareBrackets != oModifier.squareBrackets) return false; if (arrayRange != null ? !arrayRange.equals(oModifier.arrayRange) : oModifier.arrayRange != null) return false; if (condition != null ? !condition.equals(oModifier.condition) : oModifier.condition != null) return false; if (arraySingleValues != null ? !arraySingleValues.equals(oModifier.arraySingleValues) : oModifier.arraySingleValues != null) return false; if (rightBinaryCondition != null ? !rightBinaryCondition.equals(oModifier.rightBinaryCondition) : oModifier.rightBinaryCondition != null) return false; if (methodCall != null ? !methodCall.equals(oModifier.methodCall) : oModifier.methodCall != null) return false; if (suffix != null ? !suffix.equals(oModifier.suffix) : oModifier.suffix != null) return false; if (next != null ? !next.equals(oModifier.next) : oModifier.next != null) return false; return true; }
final public OArraySingleValuesSelector ArraySingleValuesSelector() throws ParseException { OArraySingleValuesSelector jjtn000 = new OArraySingleValuesSelector(JJTARRAYSINGLEVALUESSELECTOR); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); jjtn000.jjtSetFirstToken(getToken(1));OArraySelector lastSelector; try { lastSelector = ArraySelector(); jjtn000.jjtSetLastToken(getToken(0)); {if (true) return jjtn000;} } catch (Throwable jjte000) { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); jjtn000.jjtSetLastToken(getToken(0));
arraySingleValues = new OArraySingleValuesSelector(-1); arraySingleValues.deserialize(fromResult.getProperty("arraySingleValues"));
return arraySingleValues.execute(currentRecord, target, ctx); } else if (rightBinaryCondition != null) { return rightBinaryCondition.execute(currentRecord, target, ctx);
@Override public int hashCode() { int result = (squareBrackets ? 1 : 0); result = 31 * result + (arrayRange != null ? arrayRange.hashCode() : 0); result = 31 * result + (condition != null ? condition.hashCode() : 0); result = 31 * result + (arraySingleValues != null ? arraySingleValues.hashCode() : 0); result = 31 * result + (rightBinaryCondition != null ? rightBinaryCondition.hashCode() : 0); result = 31 * result + (methodCall != null ? methodCall.hashCode() : 0); result = 31 * result + (suffix != null ? suffix.hashCode() : 0); result = 31 * result + (next != null ? next.hashCode() : 0); return result; }
public void applyRemove(Object currentValue, OResultInternal originalRecord, OCommandContext ctx) { if (next != null) { Object val = calculateLocal(originalRecord, currentValue, ctx); next.applyRemove(val, originalRecord, ctx); } else { if (arrayRange != null) { arrayRange.applyRemove(currentValue, originalRecord, ctx); } else if (condition != null) { //TODO throw new UnsupportedOperationException("Remove on conditional filtering will be supported soon"); } else if (arraySingleValues != null) { arraySingleValues.applyRemove(currentValue, originalRecord, ctx); } else if (rightBinaryCondition != null) { throw new UnsupportedOperationException("Remove on conditional filtering will be supported soon"); } else if (suffix != null) { suffix.applyRemove(currentValue, ctx); } else { throw new OCommandExecutionException("cannot apply REMOVE " + toString()); } } }
public OModifier copy() { OModifier result = new OModifier(-1); result.squareBrackets = squareBrackets; result.arrayRange = arrayRange == null ? null : arrayRange.copy(); result.condition = condition == null ? null : condition.copy(); result.arraySingleValues = arraySingleValues == null ? null : arraySingleValues.copy(); result.rightBinaryCondition = rightBinaryCondition == null ? null : rightBinaryCondition.copy(); result.methodCall = methodCall == null ? null : methodCall.copy(); result.suffix = suffix == null ? null : suffix.copy(); result.next = next == null ? null : next.copy(); return result; }
public void extractSubQueries(SubQueryCollector collector) { if (arrayRange != null) { arrayRange.extractSubQueries(collector); } if (condition != null) { condition.extractSubQueries(collector); } if (arraySingleValues != null) { arraySingleValues.extractSubQueries(collector); } if (rightBinaryCondition != null) { rightBinaryCondition.extractSubQueries(collector); } if (methodCall != null) { methodCall.extractSubQueries(collector); } if (suffix != null) { suffix.extractSubQueries(collector); } if (next != null) { next.extractSubQueries(collector); } }
public Object execute(OResult iCurrentRecord, Object result, OCommandContext ctx) { if (ctx.getVariable("$current") == null) { ctx.setVariable("$current", iCurrentRecord); } if (methodCall != null) { result = methodCall.execute(result, ctx); } else if (suffix != null) { result = suffix.execute(result, ctx); } else if (arrayRange != null) { result = arrayRange.execute(iCurrentRecord, result, ctx); } else if (condition != null) { result = filterByCondition(result, ctx); } else if (arraySingleValues != null) { result = arraySingleValues.execute(iCurrentRecord, result, ctx); } else if (rightBinaryCondition != null) { result = rightBinaryCondition.execute(iCurrentRecord, result, ctx); } if (next != null) { result = next.execute(iCurrentRecord, result, ctx); } return result; }
public Object execute(OIdentifiable iCurrentRecord, Object result, OCommandContext ctx) { if (ctx.getVariable("$current") == null) { ctx.setVariable("$current", iCurrentRecord); } if (methodCall != null) { result = methodCall.execute(result, ctx); } else if (suffix != null) { result = suffix.execute(result, ctx); } else if (arrayRange != null) { result = arrayRange.execute(iCurrentRecord, result, ctx); } else if (condition != null) { result = filterByCondition(result, ctx); } else if (arraySingleValues != null) { result = arraySingleValues.execute(iCurrentRecord, result, ctx); } else if (rightBinaryCondition != null) { result = rightBinaryCondition.execute(iCurrentRecord, result, ctx); } if (next != null) { result = next.execute(iCurrentRecord, result, ctx); } return result; }
Iterator<Object> iter = OMultiValue.getMultiValueIterator(iResult); while (iter.hasNext()) { result.add(calculateValue(iter.next(), index));