public Object evaluate(final OIdentifiable iRecord, final ODocument iCurrentResult, final OCommandContext iContext) { if (rootCondition == null) { return true; } return rootCondition.evaluate(iRecord, iCurrentResult, iContext); }
public OSQLFilterItemField(final OBaseParser iQueryToParse, final String iName, final OClass iClass) { super(iQueryToParse, iName); collate = getCollateForField(iClass, iName); if (iClass != null) { collatePreset = true; } }
public List<String> getInvolvedFields(final List<String> list) { extractInvolvedFields(getLeft(), list); extractInvolvedFields(getRight(), list); return list; }
private void extractInvolvedFields(Object left, List<String> list) { if (left != null) { if (left instanceof OSQLFilterItemField) { if (((OSQLFilterItemField) left).isFieldChain()) { list.add(((OSQLFilterItemField) left).getFieldChain().getItemName( ((OSQLFilterItemField) left).getFieldChain().getItemCount() - 1)); } } else if (left instanceof OSQLFilterCondition) { ((OSQLFilterCondition) left).getInvolvedFields(list); } } }
public void optimize(OSQLFilter filter, OIndexSearchResult indexMatch) { filter.setRootCondition(optimize(filter.getRootCondition(), indexMatch)); }
public Object evaluate(final OCommandContext iContext) { return evaluate(null, null, iContext); }
/** * Creates {@code FieldChain} in case when filter item can have such representation. * * @return {@code FieldChain} representation of this filter item. * @throws IllegalStateException if this filter item cannot be represented as {@code FieldChain}. */ public FieldChain getFieldChain() { if (!isFieldChain()) { throw new IllegalStateException("Filter item field contains not only field operators"); } return new FieldChain(); }
@Override public ORID getEndRidRange(final Object iLeft, final Object iRight) { if (iLeft instanceof OSQLFilterItemField && ODocumentHelper.ATTRIBUTE_RID.equals(((OSQLFilterItemField) iLeft).getRoot())) if (iRight instanceof ORID) return (ORID) iRight; else { if (iRight instanceof OSQLFilterItemParameter && ((OSQLFilterItemParameter) iRight).getValue(null, null, null) instanceof ORID) return (ORID) ((OSQLFilterItemParameter) iRight).getValue(null, null, null); } return null; }
protected OSQLFilter getIfFilter() { if (ifExpression != null) return new OSQLFilter(ifExpression, context, null); return null; }
private boolean isChained(Object left) { if (left instanceof OSQLFilterItemField) { OSQLFilterItemField field = (OSQLFilterItemField) left; return field.isFieldChain(); } return false; }
@Override public String toString() { if (rootCondition != null) { return "Parsed: " + rootCondition.toString(); } return "Unparsed: " + parserText; } }
public OCollate getCollate(OIdentifiable doc) { if (left instanceof OSQLFilterItemField) { return ((OSQLFilterItemField) left).getCollate(doc); } else if (right instanceof OSQLFilterItemField) { return ((OSQLFilterItemField) right).getCollate(doc); } return null; }
public static Object getValue(final Object iObject) { if (iObject == null) return null; if (iObject instanceof OSQLFilterItem) return ((OSQLFilterItem) iObject).getValue(null, null, null); return iObject; }
private boolean isSameField(OSQLFilterItemField field, OSQLFilterItemField.FieldChain fieldChain) { return fieldChain.belongsTo(field); }
@Override public String toString() { return "$" + super.toString(); }
@Override public ORID getBeginRidRange(final Object iLeft, final Object iRight) { if (iLeft instanceof OSQLFilterItemField && ODocumentHelper.ATTRIBUTE_RID.equals(((OSQLFilterItemField) iLeft).getRoot())) if (iRight instanceof ORID) return (ORID) iRight; else { if (iRight instanceof OSQLFilterItemParameter && ((OSQLFilterItemParameter) iRight).getValue(null, null, null) instanceof ORID) return (ORID) ((OSQLFilterItemParameter) iRight).getValue(null, null, null); } return null; }
protected OSQLFilter getIfFilter() { if (ifExpression != null) return new OSQLFilter(ifExpression, context, null); return null; }
public Object evaluate(final OIdentifiable iRecord, ODocument iCurrentResult, final OCommandContext iContext) { if (rootCondition == null) return true; return rootCondition.evaluate(iRecord, iCurrentResult, iContext); }
@Override public String toString() { if (rootCondition != null) return "Parsed: " + rootCondition.toString(); return "Unparsed: " + parserText; }
@Override public ORID getEndRidRange(final Object iLeft, final Object iRight) { if (iLeft instanceof OSQLFilterItemField && ODocumentHelper.ATTRIBUTE_RID.equals(((OSQLFilterItemField) iLeft).getRoot())) if (iRight instanceof ORID) return (ORID) iRight; else { if (iRight instanceof OSQLFilterItemParameter && ((OSQLFilterItemParameter) iRight).getValue(null, null, null) instanceof ORID) return (ORID) ((OSQLFilterItemParameter) iRight).getValue(null, null, null); } return null; }