Class OBooleanExpression

java.lang.Object
com.orientechnologies.orient.core.sql.parser.SimpleNode
com.orientechnologies.orient.core.sql.parser.OBooleanExpression
All Implemented Interfaces:
Node
Direct Known Subclasses:
OAndBlock, OBetweenCondition, OBinaryCondition, OContainsAllCondition, OContainsAnyCondition, OContainsCondition, OContainsTextCondition, OContainsValueCondition, OFalseExpression, OInCondition, OInstanceofCondition, OIsDefinedCondition, OIsNotDefinedCondition, OIsNotNullCondition, OIsNullCondition, OMatchesCondition, ONotBlock, ONotInCondition, OOrBlock, OParenthesisBlock, OTrueExpression

public abstract class OBooleanExpression extends SimpleNode
Created by luigidellaquila on 07/11/14.
  • Field Details

  • Constructor Details

    • OBooleanExpression

      public OBooleanExpression(int id)
    • OBooleanExpression

      public OBooleanExpression(OrientSql p, int id)
  • Method Details

    • evaluate

      public abstract boolean evaluate(OResult currentRecord, OCommandContext ctx)
    • supportsBasicCalculation

      protected abstract boolean supportsBasicCalculation()
      Returns:
      true if this expression can be calculated in plain Java, false otherwise (eg. LUCENE operator)
    • getNumberOfExternalCalculations

      protected abstract int getNumberOfExternalCalculations()
      Returns:
      the number of sub-expressions that have to be calculated using an external engine (eg. LUCENE)
    • getExternalCalculationConditions

      protected abstract List<Object> getExternalCalculationConditions()
      Returns:
      the sub-expressions that have to be calculated using an external engine (eg. LUCENE)
    • getIndexedFunctionConditions

      public List<OBinaryCondition> getIndexedFunctionConditions(OClass iSchemaClass, ODatabaseDocumentInternal database)
    • flatten

      public List<OAndBlock> flatten()
    • encapsulateInAndBlock

      protected OAndBlock encapsulateInAndBlock(OBooleanExpression item)
    • needsAliases

      public abstract boolean needsAliases(Set<String> aliases)
    • copy

      public abstract OBooleanExpression copy()
      Overrides:
      copy in class SimpleNode
    • isEmpty

      public boolean isEmpty()
    • extractSubQueries

      public abstract void extractSubQueries(SubQueryCollector collector)
    • refersToParent

      public abstract boolean refersToParent()
    • transformToUpdateItem

      public Optional<OUpdateItem> transformToUpdateItem()
      returns the equivalent of current condition as an UPDATE expression with the same syntax, if possible.

      Eg. name = 3 can be considered a condition or an assignment. This method transforms the condition in an assignment. This is used mainly for UPSERT operations.

      Returns:
      the equivalent of current condition as an UPDATE expression with the same syntax, if possible.
    • getMatchPatternInvolvedAliases

      public abstract List<String> getMatchPatternInvolvedAliases()
    • translateLuceneOperator

      public void translateLuceneOperator()
    • deserializeFromOResult

      public static OBooleanExpression deserializeFromOResult(OResult doc)
    • serialize

      public OResult serialize()
    • deserialize

      public void deserialize(OResult fromResult)
    • isCacheable

      public abstract boolean isCacheable()
    • rewriteIndexChainsAsSubqueries

      public OBooleanExpression rewriteIndexChainsAsSubqueries(OCommandContext ctx, OClass clazz)
    • isAlwaysTrue

      public boolean isAlwaysTrue()
      returns true only if the expression does not need any further evaluation (eg. "true") and always evaluates to true. It is supposed to be used as and optimization, and is allowed to return false negatives
      Returns:
    • findIndex

      public Optional<OIndexCandidate> findIndex(OIndexFinder info, OCommandContext ctx)
    • extractRidRanges

      public OAndBlock extractRidRanges(OCommandContext ctx)
    • conditionsCount

      public int conditionsCount()
    • getIndexKeyCondition

      public OBooleanExpression getIndexKeyCondition()
    • getIndexRidCondition

      public OBooleanExpression getIndexRidCondition()