Interface DBQueryBuilderComponent

All Known Implementing Classes:
AspectSupport, DBChild, DBConjunction, DBDescendant, DBDisjunction, DBEquals, DBExists, DBFTSFuzzyTerm, DBFTSPhrase, DBFTSPrefixTerm, DBFTSProximity, DBFTSRange, DBFTSTerm, DBFTSWildTerm, DBFunctionalConstraint, DBGreaterThan, DBGreaterThanOrEquals, DBIn, DBLessThan, DBLessThanOrEquals, DBLike, DBLower, DBNotEquals, DBOrdering, DBPropertyAccessor, DBQuery, DBScore, DBSelector, DBUpper, ParentSupport, PropertySupport, TypeSupport, UUIDSupport

public interface DBQueryBuilderComponent
Build the commands required to generate the dynamic SQL This is independent of the data base schema.
Author:
Andy
  • Method Details

    • isSupported

      boolean isSupported()
      Is this component supported in a DB query?
      Returns:
      boolean
    • prepare

      void prepare(NamespaceService namespaceService, DictionaryService dictionaryService, QNameDAO qnameDAO, NodeDAO nodeDAO, TenantService tenantService, Set<String> selectors, Map<String,Argument> functionArgs, FunctionEvaluationContext functionContext, boolean supportBooleanFloatAndDouble)
      Use the dictionary to expand any terms, deal with multi-valued properties, etc Use the QNameDAO to look up any ids
      Parameters:
      namespaceService - NamespaceService
      dictionaryService - DictionaryService
      qnameDAO - QNameDAO
      nodeDAO - NodeDAO
      tenantService - TenantService
      functionContext - FunctionEvaluationContext
    • buildJoins

      void buildJoins(Map<QName,DBQueryBuilderJoinCommand> singleJoins, List<DBQueryBuilderJoinCommand> multiJoins)
      Build the Set of required joins Assign join aliases and link them up to each component where required
    • buildPredicateCommands

      void buildPredicateCommands(List<DBQueryBuilderPredicatePartCommand> predicatePartCommands)
      Add to the list of commands used to build the SQL predicate