Class JoinClause

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable

    public final class JoinClause
    extends java.lang.Object
    Represents a clause to join to the primary query.

    The field(s) used to join this clause to the primary query will be resolved as follows:

    • If a PrimaryKey and a ForeignKey is set on this clause, the join will be on PrimaryKey = ForeignKey
    • If only a PrimaryKey is set on this clause, the join will be on PrimaryKey = PrimaryKey
    See Also:
    Serialized Form
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected static void addParameter​(java.lang.StringBuilder buffer, java.lang.String name, java.lang.Object value)
      Add "\"name\"=\"value\"" to buffer.
      void addParameter​(java.lang.String name, java.lang.Object value)
      allow multiple values per name
      protected static void addParameterCompact​(java.lang.StringBuilder buffer, java.lang.String name, java.lang.Object value)
      Add "\"name\"=\"value\"" to buffer, omitting value if it is Boolean.TRUE.
      protected void addParameters​(java.lang.StringBuilder buffer, boolean compact)
      Append all parameters for this query to buffer.
      protected static void appendParameter​(java.lang.StringBuilder buffer, java.lang.String name, java.lang.Object value)
      Add ", \"name\"=\"value\"" to buffer.
      protected void appendParameters​(java.lang.StringBuilder buffer, boolean compact)
      Append all parameters to buffer.
      JoinClause clone()
      boolean containsParameter​(java.lang.String name)
      Returns true if the specified parameter exists for this Query object.
      boolean containsParameters()  
      boolean equals​(java.lang.Object other)
      protected boolean equals​(java.lang.Object other, java.util.Map<java.lang.String,​java.lang.Object> defaults, java.util.Set<java.lang.String> ignore)
      Checks whether query equals this Query object.
      protected static void escape​(java.lang.StringBuilder buffer, java.lang.Object value)  
      protected void escape​(java.lang.StringBuilder buffer, java.lang.String value, boolean quote)
      Helper method to escape a string for toString() .
      java.lang.String getAlias()
      Get the name for this clause.
      int getBoost()
      Gets the boost for this clause.
      java.lang.String getForeignKey()
      Get the field that is the foreign key for this join.
      protected java.lang.Object getInternalParameter​(java.lang.String name)  
      FieldExpression getJoinConstraint()
      (Experimental) Get the join constraint.
      FieldExpression getJoinExpression()
      Get the compiled FieldExpression that will be used to evaluate the join criteria.
      int getMinimum()
      Get the minimum number of child documents a parent document must have.
      JoinMode getMode()
      Gets the mode for joining.
      Sort getOrder()
      Get the order for child documents.
      java.lang.Object getParameter​(java.lang.String name)
      Returns a named property for this Query object.
      boolean getParameter​(java.lang.String name, boolean defaultValue)
      Gets a boolean parameter.
      double getParameter​(java.lang.String name, double defaultValue)
      Gets a double parameter.
      float getParameter​(java.lang.String name, float defaultValue)
      Gets a float parameter.
      int getParameter​(java.lang.String name, int defaultValue)
      Gets an integer parameter.
      long getParameter​(java.lang.String name, long defaultValue)
      Gets a long parameter.
      java.lang.Object getParameter​(java.lang.String name, java.lang.Object defaultValue)
      Gets a parameter.
      java.lang.String getParameter​(java.lang.String name, java.lang.String defaultValue)
      Gets a String parameter.
      java.util.List<java.lang.Object> getParameterList​(java.lang.String name)
      Returns list of values found for the named property for this Query object.
      java.lang.String getPrimaryKey()
      Get the field that is the primary key for this join.
      Query getQuery()
      Gets the query for this clause.
      int getRollupLimit()
      Get the maximum number of child documents to collect for this clause per parent document.
      int getRollupLimit​(int defaultValue)
      Get the maximum number of child documents to collect for this clause per parent document.
      int hashCode()
      protected static java.lang.StringBuilder indent​(java.lang.StringBuilder buffer, int indent)
      Support method to indent a "line" in a StringBuilder.
      protected boolean isCompactParameter​(java.lang.String key, java.lang.Object value)
      Check if parameter should be included in compact representation.
      boolean isFacet()
      true if documents for this clause should be used in facet document collection.
      java.util.Iterator<java.util.Map.Entry<java.lang.String,​java.lang.Object>> parameters()
      Get an iterator for returning all custom parameters.
      protected static int parseIntParameter​(java.lang.Object value, int defaultValue)  
      java.lang.String prettyFormat()
      Returns a hierarchical representation of this query as a string.
      protected void prettyFormat​(java.lang.StringBuilder buffer, int indent)
      Support prettyFormat on JoinQuery.
      protected void prettyFormatParameters​(java.lang.StringBuilder buffer, int indent)  
      void prettyPrint()
      Sends a hierarchical representation of this query to standard out.
      void prettyPrint​(java.io.PrintStream out)
      Sends a hierarchical representation of this query specified PrintStream.
      java.lang.Object removeParameter​(java.lang.String name)
      Remove the value for a parameter for this Query object.
      void setAlias​(java.lang.String value)
      Set the name for this clause.
      protected void setBooleanParameter​(java.lang.String key, java.lang.Object value)
      Internal method for setting a boolean parameter.
      void setBoost​(int value)
      Sets the boost for this clause.
      protected void setEnumParameter​(java.lang.String key, java.lang.Object value, java.lang.String... enumValues)
      Internal method for setting an object parameter.
      void setFacet​(boolean value)
      Set if documents for this clause should be used in facet document collection.
      void setForeignKey​(java.lang.String value)
      Set the field that is the foreign key for this join.
      protected void setIntegerParameter​(java.lang.String key, java.lang.Object value)
      Internal method for setting an integer parameter.
      void setJoinConstraint​(FieldExpression value)
      (Experimental) Set the join constraint.
      void setMinimum​(int value)
      Set the minimum number of child documents a parent document must have.
      void setMode​(JoinMode mode)
      Sets the mode for joining.
      void setOrder​(Sort value)
      Set the order for child documents.
      void setParameter​(java.lang.String parameter, java.lang.Object value)
      void setParameters​(java.util.Map<java.lang.String,​java.lang.Object> value)  
      void setParameters​(java.util.Map<java.lang.String,​java.lang.Object> params, boolean override)
      Copies parameters from a Map into this Query.
      void setPrimaryKey​(java.lang.String value)
      Set the field that is the primary key for this join.
      void setQuery​(Query value)
      Sets the query for this clause.
      void setRollupLimit​(int value)
      Set the maximum number of child documents to collect for this clause per parent document.
      protected void setRollupParameter​(java.lang.String key, java.lang.Object value)  
      protected void setStringParameter​(java.lang.String key, java.lang.Object value)
      Internal method for setting a string parameter.
      protected void setUnsignedParameter​(java.lang.String key, java.lang.Object value)
      Internal method for setting an integer parameter.
      java.lang.String toString()
      java.lang.String toString​(boolean compact)  
      protected void toString​(java.lang.StringBuilder buffer, boolean compact)
      Write the String representation of this query to buffer.
      • Methods inherited from class java.lang.Object

        finalize, getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • JoinClause

        public JoinClause()
        Constructor
      • JoinClause

        public JoinClause​(Query query,
                          JoinMode mode)
        Constructor
      • JoinClause

        public JoinClause​(Query query,
                          JoinMode mode,
                          java.lang.String primaryKey,
                          java.lang.String foreignKey)
        Constructor
    • Method Detail

      • getOrder

        public Sort getOrder()
        Get the order for child documents.
      • setOrder

        public void setOrder​(Sort value)
        Set the order for child documents.
      • getMode

        public JoinMode getMode()
        Gets the mode for joining.
      • setMode

        public void setMode​(JoinMode mode)
        Sets the mode for joining.
      • getMinimum

        public int getMinimum()
        Get the minimum number of child documents a parent document must have.

        NOTE: this only applies to JoinMode.INNER join clauses.

      • setMinimum

        public void setMinimum​(int value)
        Set the minimum number of child documents a parent document must have.

        NOTE: this only applies to JoinMode.INNER join clauses.

      • getJoinConstraint

        public FieldExpression getJoinConstraint()
        (Experimental) Get the join constraint.
      • setJoinConstraint

        public void setJoinConstraint​(FieldExpression value)
        (Experimental) Set the join constraint.
      • getPrimaryKey

        public java.lang.String getPrimaryKey()
        Get the field that is the primary key for this join.
      • setPrimaryKey

        public void setPrimaryKey​(java.lang.String value)
        Set the field that is the primary key for this join.
      • getForeignKey

        public java.lang.String getForeignKey()
        Get the field that is the foreign key for this join.
      • setForeignKey

        public void setForeignKey​(java.lang.String value)
        Set the field that is the foreign key for this join.
      • setParameter

        public void setParameter​(java.lang.String parameter,
                                 java.lang.Object value)
      • hashCode

        public int hashCode()
      • equals

        protected boolean equals​(java.lang.Object other,
                                 java.util.Map<java.lang.String,​java.lang.Object> defaults,
                                 java.util.Set<java.lang.String> ignore)
        Checks whether query equals this Query object.
        Parameters:
        other - the query to compare to
        defaults - map of default values for query parameters
        ignore - set of query parameters to ignore during equality check.
        Returns:
        true if other is equal to this Query
      • appendParameters

        protected void appendParameters​(java.lang.StringBuilder buffer,
                                        boolean compact)
        Append all parameters to buffer.
      • prettyFormatParameters

        protected void prettyFormatParameters​(java.lang.StringBuilder buffer,
                                              int indent)
      • getAlias

        public java.lang.String getAlias()
        Get the name for this clause.

        This name can be used for selecting fields for child documents generated by this clause. Use ClauseContext to identify fields that should be returned only for this clause.

      • setAlias

        public void setAlias​(java.lang.String value)
        Set the name for this clause.
      • getQuery

        public Query getQuery()
        Gets the query for this clause.
      • setQuery

        public void setQuery​(Query value)
        Sets the query for this clause.
      • getRollupLimit

        public int getRollupLimit()
        Get the maximum number of child documents to collect for this clause per parent document.
      • getRollupLimit

        public int getRollupLimit​(int defaultValue)
        Get the maximum number of child documents to collect for this clause per parent document.
      • setRollupLimit

        public void setRollupLimit​(int value)
        Set the maximum number of child documents to collect for this clause per parent document.
      • isFacet

        public boolean isFacet()
        true if documents for this clause should be used in facet document collection.
      • setFacet

        public void setFacet​(boolean value)
        Set if documents for this clause should be used in facet document collection.
      • getBoost

        public int getBoost()
        Gets the boost for this clause.
      • setBoost

        public void setBoost​(int value)
        Sets the boost for this clause.
      • toString

        protected void toString​(java.lang.StringBuilder buffer,
                                boolean compact)
        Write the String representation of this query to buffer.
      • equals

        public final boolean equals​(java.lang.Object other)
        Overrides:
        equals in class java.lang.Object
      • prettyFormat

        protected void prettyFormat​(java.lang.StringBuilder buffer,
                                    int indent)
        Support prettyFormat on JoinQuery.
        Parameters:
        buffer - buffer to write pretty formated parameters to.
        indent - the indentation level
      • parameters

        public java.util.Iterator<java.util.Map.Entry<java.lang.String,​java.lang.Object>> parameters()
        Get an iterator for returning all custom parameters.
      • containsParameters

        public boolean containsParameters()
      • containsParameter

        public boolean containsParameter​(java.lang.String name)
        Returns true if the specified parameter exists for this Query object.
        Parameters:
        name - parameter name.
        Returns:
        true if the specified parameter exists.
      • getParameter

        public final java.lang.Object getParameter​(java.lang.String name)
        Returns a named property for this Query object.
        Parameters:
        name - parameter name.
        Returns:
        the value for the named property (or null if not found)
      • getParameterList

        public final java.util.List<java.lang.Object> getParameterList​(java.lang.String name)
        Returns list of values found for the named property for this Query object.
        Parameters:
        name - parameter name.
        Returns:
        list, which might be empty (but we never return null)
      • getInternalParameter

        protected java.lang.Object getInternalParameter​(java.lang.String name)
      • getParameter

        public final java.lang.String getParameter​(java.lang.String name,
                                                   java.lang.String defaultValue)
        Gets a String parameter.
        Parameters:
        name - parameter name.
        defaultValue - default value to return if not set.
      • getParameter

        public final boolean getParameter​(java.lang.String name,
                                          boolean defaultValue)
        Gets a boolean parameter.
        Parameters:
        name - parameter name.
        defaultValue - default value to return if not set.
      • getParameter

        public final int getParameter​(java.lang.String name,
                                      int defaultValue)
        Gets an integer parameter.
        Parameters:
        name - parameter name.
        defaultValue - default value to return if not set.
      • getParameter

        public final long getParameter​(java.lang.String name,
                                       long defaultValue)
        Gets a long parameter.
        Parameters:
        name - parameter name.
        defaultValue - default value to return if not set.
      • getParameter

        public final float getParameter​(java.lang.String name,
                                        float defaultValue)
        Gets a float parameter.
        Parameters:
        name - parameter name.
        defaultValue - default value to return if not set.
      • getParameter

        public final double getParameter​(java.lang.String name,
                                         double defaultValue)
        Gets a double parameter.
        Parameters:
        name - parameter name.
        defaultValue - default value to return if not set.
      • getParameter

        public java.lang.Object getParameter​(java.lang.String name,
                                             java.lang.Object defaultValue)
        Gets a parameter.
        Parameters:
        name - name of parameter to return.
        defaultValue - default value to return if not set.
      • setParameters

        public final void setParameters​(java.util.Map<java.lang.String,​java.lang.Object> value)
      • setParameters

        public void setParameters​(java.util.Map<java.lang.String,​java.lang.Object> params,
                                  boolean override)
        Copies parameters from a Map into this Query.
        Parameters:
        params - the parameters to copy into this Query instance.
        override - indicates if parameters from params should overwrite existing parameters in this Query
      • addParameter

        public void addParameter​(java.lang.String name,
                                 java.lang.Object value)
        allow multiple values per name
        Parameters:
        name -
        value -
      • parseIntParameter

        protected static int parseIntParameter​(java.lang.Object value,
                                               int defaultValue)
      • removeParameter

        public java.lang.Object removeParameter​(java.lang.String name)
        Remove the value for a parameter for this Query object.
        Parameters:
        name - the parameter to remove.
      • setEnumParameter

        protected final void setEnumParameter​(java.lang.String key,
                                              java.lang.Object value,
                                              java.lang.String... enumValues)
        Internal method for setting an object parameter.

        NOTE: enumValues must contain lower case strings.

      • setStringParameter

        protected final void setStringParameter​(java.lang.String key,
                                                java.lang.Object value)
        Internal method for setting a string parameter.
      • setIntegerParameter

        protected final void setIntegerParameter​(java.lang.String key,
                                                 java.lang.Object value)
        Internal method for setting an integer parameter.
      • setUnsignedParameter

        protected final void setUnsignedParameter​(java.lang.String key,
                                                  java.lang.Object value)
        Internal method for setting an integer parameter.
      • setBooleanParameter

        protected final void setBooleanParameter​(java.lang.String key,
                                                 java.lang.Object value)
        Internal method for setting a boolean parameter.
      • setRollupParameter

        protected final void setRollupParameter​(java.lang.String key,
                                                java.lang.Object value)
      • isCompactParameter

        protected boolean isCompactParameter​(java.lang.String key,
                                             java.lang.Object value)
        Check if parameter should be included in compact representation.
      • addParameters

        protected void addParameters​(java.lang.StringBuilder buffer,
                                     boolean compact)
        Append all parameters for this query to buffer.
      • appendParameter

        protected static void appendParameter​(java.lang.StringBuilder buffer,
                                              java.lang.String name,
                                              java.lang.Object value)
        Add ", \"name\"=\"value\"" to buffer.
      • addParameter

        protected static void addParameter​(java.lang.StringBuilder buffer,
                                           java.lang.String name,
                                           java.lang.Object value)
        Add "\"name\"=\"value\"" to buffer.
      • addParameterCompact

        protected static void addParameterCompact​(java.lang.StringBuilder buffer,
                                                  java.lang.String name,
                                                  java.lang.Object value)
        Add "\"name\"=\"value\"" to buffer, omitting value if it is Boolean.TRUE.
      • escape

        protected static void escape​(java.lang.StringBuilder buffer,
                                     java.lang.Object value)
      • escape

        protected void escape​(java.lang.StringBuilder buffer,
                              java.lang.String value,
                              boolean quote)
        Helper method to escape a string for toString() .
        Parameters:
        buffer - buffer to write escaped value to
        value - the value to escape
        quote - if true, escaped value will be wrapped in double quotes.
      • toString

        public final java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • toString

        public final java.lang.String toString​(boolean compact)
      • prettyPrint

        public final void prettyPrint()
        Sends a hierarchical representation of this query to standard out.
      • prettyPrint

        public final void prettyPrint​(java.io.PrintStream out)
        Sends a hierarchical representation of this query specified PrintStream.
        Parameters:
        out - stream to output query representation to
      • prettyFormat

        public final java.lang.String prettyFormat()
        Returns a hierarchical representation of this query as a string.
      • indent

        protected static java.lang.StringBuilder indent​(java.lang.StringBuilder buffer,
                                                        int indent)
        Support method to indent a "line" in a StringBuilder.