Class EqualsJSONObjectFilter

  • All Implemented Interfaces:
    java.io.Serializable

    @Mutable
    @ThreadSafety(level=NOT_THREADSAFE)
    public final class EqualsJSONObjectFilter
    extends JSONObjectFilter
    This class provides an implementation of a JSON object filter that can be used to identify JSON objects that have a particular value for a specified field.
    NOTE: This class, and other classes within the com.unboundid.ldap.sdk.unboundidds package structure, are only supported for use against Ping Identity, UnboundID, and Nokia/Alcatel-Lucent 8661 server products. These classes provide support for proprietary functionality or for external specifications that are not considered stable or mature enough to be guaranteed to work in an interoperable way with other types of LDAP servers.

    The fields that are required to be included in an "equals" filter are:
    • fieldName -- A field path specifier for the JSON field for which to make the determination. This may be either a single string or an array of strings as described in the "Targeting Fields in JSON Objects" section of the class-level documentation for JSONObjectFilter.
    • value -- The value to match. This value may be of any type. In order for a JSON object to match the equals filter, the value of the target field must either have the same type value as this value, or the value of the target field must be an array containing at least one element with the same type and value. If the provided value is an array, then the order, types, and values of the array must match an array contained in the target field. If the provided value is a JSON object, then the target field must contain a JSON object with exactly the same set of fields and values.
    The fields that may optionally be included in an "equals" filter are:
    • caseSensitive -- Indicates whether string values should be treated in a case-sensitive manner. If present, this field must have a Boolean value of either true or false. If it is not provided, then a default value of false will be assumed so that strings are treated in a case-insensitive manner.

    Examples

    The following is an example of an "equals" filter that will match any JSON object with a top-level field named "firstName" with a value of "John":
       { "filterType" : "equals",
         "field" : "firstName",
         "value" : "John" }
     
    The above filter can be created with the code:
       EqualsJSONObjectFilter filter =
            new EqualsJSONObjectFilter("firstName", "John");
     
    The following is an example of an "equals" filter that will match a JSON object with a top-level field named "contact" whose value is a JSON object (or an array containing one or more JSON objects) with a field named "type" and a value of "home":
       { "filterType" : "equals",
         "field" : [ "contact", "type" ],
         "value" : "home" }
     
    That filter can be created with the code:
       EqualsJSONObjectFilter filter =
            new EqualsJSONObjectFilter(Arrays.asList("contact", "type"), "Home");
     
    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      EqualsJSONObjectFilter​(java.lang.String field, boolean value)
      Creates a new instance of this filter type with the provided information.
      EqualsJSONObjectFilter​(java.lang.String field, double value)
      Creates a new instance of this filter type with the provided information.
      EqualsJSONObjectFilter​(java.lang.String field, long value)
      Creates a new instance of this filter type with the provided information.
      EqualsJSONObjectFilter​(java.lang.String field, JSONValue value)
      Creates a new instance of this filter type with the provided information.
      EqualsJSONObjectFilter​(java.lang.String field, java.lang.String value)
      Creates a new instance of this filter type with the provided information.
      EqualsJSONObjectFilter​(java.util.List<java.lang.String> field, JSONValue value)
      Creates a new instance of this filter type with the provided information.
    • Constructor Detail

      • EqualsJSONObjectFilter

        public EqualsJSONObjectFilter​(@NotNull
                                      java.lang.String field,
                                      @NotNull
                                      java.lang.String value)
        Creates a new instance of this filter type with the provided information.
        Parameters:
        field - The name of the top-level field to target with this filter. It must not be null . See the class-level documentation for the JSONObjectFilter class for information about field path specifiers.
        value - The target string value for this filter. It must not be null.
      • EqualsJSONObjectFilter

        public EqualsJSONObjectFilter​(@NotNull
                                      java.lang.String field,
                                      boolean value)
        Creates a new instance of this filter type with the provided information.
        Parameters:
        field - The name of the top-level field to target with this filter. It must not be null . See the class-level documentation for the JSONObjectFilter class for information about field path specifiers.
        value - The target boolean value for this filter.
      • EqualsJSONObjectFilter

        public EqualsJSONObjectFilter​(@NotNull
                                      java.lang.String field,
                                      long value)
        Creates a new instance of this filter type with the provided information.
        Parameters:
        field - The name of the top-level field to target with this filter. It must not be null . See the class-level documentation for the JSONObjectFilter class for information about field path specifiers.
        value - The target numeric value for this filter.
      • EqualsJSONObjectFilter

        public EqualsJSONObjectFilter​(@NotNull
                                      java.lang.String field,
                                      double value)
        Creates a new instance of this filter type with the provided information.
        Parameters:
        field - The name of the top-level field to target with this filter. It must not be null . See the class-level documentation for the JSONObjectFilter class for information about field path specifiers.
        value - The target numeric value for this filter. It must not be null.
      • EqualsJSONObjectFilter

        public EqualsJSONObjectFilter​(@NotNull
                                      java.lang.String field,
                                      @NotNull
                                      JSONValue value)
        Creates a new instance of this filter type with the provided information.
        Parameters:
        field - The name of the top-level field to target with this filter. It must not be null . See the class-level documentation for the JSONObjectFilter class for information about field path specifiers.
        value - The target value for this filter. It must not be null.
      • EqualsJSONObjectFilter

        public EqualsJSONObjectFilter​(@NotNull
                                      java.util.List<java.lang.String> field,
                                      @NotNull
                                      JSONValue value)
        Creates a new instance of this filter type with the provided information.
        Parameters:
        field - The field path specifier for this filter. It must not be null or empty. See the class-level documentation for the JSONObjectFilter class for information about field path specifiers.
        value - The target value for this filter. It must not be null (although it may be a JSONNull).
    • Method Detail

      • getField

        @NotNull
        public java.util.List<java.lang.String> getField()
        Retrieves the field path specifier for this filter.
        Returns:
        The field path specifier for this filter.
      • setField

        public void setField​(@NotNull
                             java.lang.String... field)
        Sets the field path specifier for this filter.
        Parameters:
        field - The field path specifier for this filter. It must not be null or empty. See the class-level documentation for the JSONObjectFilter class for information about field path specifiers.
      • setField

        public void setField​(@NotNull
                             java.util.List<java.lang.String> field)
        Sets the field path specifier for this filter.
        Parameters:
        field - The field path specifier for this filter. It must not be null or empty. See the class-level documentation for the JSONObjectFilter class for information about field path specifiers.
      • getValue

        @NotNull
        public JSONValue getValue()
        Retrieves the target value for this filter.
        Returns:
        The target value for this filter.
      • setValue

        public void setValue​(@NotNull
                             java.lang.String value)
        Specifies the target value for this filter.
        Parameters:
        value - The target string value for this filter. It must not be null.
      • setValue

        public void setValue​(boolean value)
        Specifies the target value for this filter.
        Parameters:
        value - The target Boolean value for this filter.
      • setValue

        public void setValue​(long value)
        Specifies the target value for this filter.
        Parameters:
        value - The target numeric value for this filter.
      • setValue

        public void setValue​(double value)
        Specifies the target value for this filter.
        Parameters:
        value - The target numeric value for this filter.
      • setValue

        public void setValue​(@NotNull
                             JSONValue value)
        Specifies the target value for this filter.
        Parameters:
        value - The target value for this filter. It must not be null (although it may be a JSONNull).
      • caseSensitive

        public boolean caseSensitive()
        Indicates whether string matching should be performed in a case-sensitive manner.
        Returns:
        true if string matching should be case sensitive, or false if not.
      • setCaseSensitive

        public void setCaseSensitive​(boolean caseSensitive)
        Specifies whether string matching should be performed in a case-sensitive manner.
        Parameters:
        caseSensitive - Indicates whether string matching should be case sensitive.
      • getFilterType

        @NotNull
        public java.lang.String getFilterType()
        Retrieves the value that must appear in the filterType field for this filter.
        Specified by:
        getFilterType in class JSONObjectFilter
        Returns:
        The value that must appear in the filterType field for this filter.
      • getRequiredFieldNames

        @NotNull
        protected java.util.Set<java.lang.String> getRequiredFieldNames()
        Retrieves the names of all fields (excluding the filterType field) that must be present in the JSON object representing a filter of this type.
        Specified by:
        getRequiredFieldNames in class JSONObjectFilter
        Returns:
        The names of all fields (excluding the filterType field) that must be present in the JSON object representing a filter of this type.
      • getOptionalFieldNames

        @NotNull
        protected java.util.Set<java.lang.String> getOptionalFieldNames()
        Retrieves the names of all fields that may optionally be present but are not required in the JSON object representing a filter of this type.
        Specified by:
        getOptionalFieldNames in class JSONObjectFilter
        Returns:
        The names of all fields that may optionally be present but are not required in the JSON object representing a filter of this type.
      • matchesJSONObject

        public boolean matchesJSONObject​(@NotNull
                                         JSONObject o)
        Indicates whether this JSON object filter matches the provided JSON object.
        Specified by:
        matchesJSONObject in class JSONObjectFilter
        Parameters:
        o - The JSON object for which to make the determination.
        Returns:
        true if this JSON object filter matches the provided JSON object, or false if not.
      • decodeFilter

        @NotNull
        protected EqualsJSONObjectFilter decodeFilter​(@NotNull
                                                      JSONObject filterObject)
                                               throws JSONException
        Decodes the provided JSON object as a filter of this type.
        Specified by:
        decodeFilter in class JSONObjectFilter
        Parameters:
        filterObject - The JSON object to be decoded. The caller will have already validated that all required fields are present, and that it does not have any fields that are neither required nor optional.
        Returns:
        The decoded JSON object filter.
        Throws:
        JSONException - If the provided JSON object cannot be decoded as a valid filter of this type.