Class JsonSchema

java.lang.Object
org.forgerock.opendj.rest2ldap.schema.JsonSchema

public final class JsonSchema extends Object
Utility methods for obtaining JSON syntaxes and matching rules. See the package documentation for more detail.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static enum 
    JSON value validation policies.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final org.forgerock.util.Option<Boolean>
    Matching rule option controlling whether JSON string comparisons should be case-sensitive.
    static final org.forgerock.util.Option<Boolean>
    Matching rule option controlling whether JSON string comparisons should ignore white-space.
    static final org.forgerock.util.Option<Collection<String>>
    Matching rule option controlling which JSON fields should be indexed by the matching rule.
    static final org.forgerock.util.Option<JsonSchema.ValidationPolicy>
    Schema option controlling syntax validation for JSON based attributes.
  • Method Summary

    Modifier and Type
    Method
    Description
    static org.forgerock.opendj.ldap.schema.SchemaBuilder
    addJsonSyntaxesAndMatchingRulesToSchema(org.forgerock.opendj.ldap.schema.SchemaBuilder builder)
    Adds the syntaxes and matching rules required by for JSON attribute support to the provided schema builder.
    static org.forgerock.util.Function<org.forgerock.opendj.ldap.ByteString,Object,org.forgerock.i18n.LocalizedIllegalArgumentException>
    Returns a function which parses JSON values.
    static org.forgerock.opendj.ldap.schema.MatchingRule
    Returns the jsonQueryMatch matching rule having the OID 1.3.6.1.4.1.36733.2.1.4.2.
    static org.forgerock.opendj.ldap.schema.MatchingRule
    Returns the jsonQueryMatch matching rule having the OID 1.3.6.1.4.1.36733.2.1.4.1.
    static org.forgerock.opendj.ldap.schema.Syntax
    Returns the JSON Query attribute syntax having the OID 1.3.6.1.4.1.36733.2.1.3.2.
    static org.forgerock.opendj.ldap.schema.Syntax
    Returns the JSON attribute syntax having the OID 1.3.6.1.4.1.36733.2.1.3.1.
    static org.forgerock.util.Function<Object,org.forgerock.opendj.ldap.ByteString,com.fasterxml.jackson.core.JsonProcessingException>
    Returns a function which converts a JSON Object to a ByteString.
    static org.forgerock.opendj.ldap.schema.MatchingRuleImpl
    newJsonQueryEqualityMatchingRuleImpl(String matchingRuleName, org.forgerock.util.Options options)
    Creates a new custom JSON query equality matching rule implementation with the provided matching rule name and options.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • VALIDATION_POLICY

      public static final org.forgerock.util.Option<JsonSchema.ValidationPolicy> VALIDATION_POLICY
      Schema option controlling syntax validation for JSON based attributes. By default this compatibility option is set to JsonSchema.ValidationPolicy.STRICT.
    • CASE_SENSITIVE_STRINGS

      public static final org.forgerock.util.Option<Boolean> CASE_SENSITIVE_STRINGS
      Matching rule option controlling whether JSON string comparisons should be case-sensitive. By default this compatibility option is set to false meaning that case will be ignored.

      This option must be provided when constructing a JSON matching rule using newJsonQueryEqualityMatchingRuleImpl(java.lang.String, org.forgerock.util.Options), and cannot be overridden at the schema level.

    • IGNORE_WHITE_SPACE

      public static final org.forgerock.util.Option<Boolean> IGNORE_WHITE_SPACE
      Matching rule option controlling whether JSON string comparisons should ignore white-space. By default this compatibility option is set to true meaning that leading and trailing white-space will be ignored and intermediate white-space will be reduced to a single white-space character.

      This option must be provided when constructing a JSON matching rule using newJsonQueryEqualityMatchingRuleImpl(java.lang.String, org.forgerock.util.Options), and cannot be overridden at the schema level.

    • INDEXED_FIELD_PATTERNS

      public static final org.forgerock.util.Option<Collection<String>> INDEXED_FIELD_PATTERNS
      Matching rule option controlling which JSON fields should be indexed by the matching rule. By default all fields will be indexed. To restrict the set of indexed fields specify a list whose values are wild-card patterns for matching against JSON pointers. Patterns are JSON pointers where "*" represents zero or more characters in a single path element, and "**" represents any number of path elements. For example:
      PatternMatchesDoesn't match
      /aaa/bbb/ccc/aaa/bbb/ccc/aaa/bbb/ccc/ddd
      /aaa/bbb/cccc
      /aaa/b*/ccc/aaa/bbb/ccc
      /aaa/bxx/ccc
      /aaa/xxx/ccc
      /aaa/bbb
      /aaa/**/ddd/aaa/ddd
      /aaa/xxx/yyy/ddd
      /aaa/bbb/ccc
      /aaa/**/aaa
      /aaa/bbb
      /aaa/bbb/ccc
      /aa
  • Method Details

    • getJsonSyntax

      public static org.forgerock.opendj.ldap.schema.Syntax getJsonSyntax()
      Returns the JSON attribute syntax having the OID 1.3.6.1.4.1.36733.2.1.3.1. Attribute values of this syntax must be valid JSON. Use the VALIDATION_POLICY schema option to control the degree of syntax enforcement. By default JSON attributes will support equality matching using the jsonQueryMatch matching rule, although this may be overridden when defining individual attribute types.
      Returns:
      The JSON attribute syntax having the OID 1.3.6.1.4.1.36733.2.1.3.1.
    • getJsonQuerySyntax

      public static org.forgerock.opendj.ldap.schema.Syntax getJsonQuerySyntax()
      Returns the JSON Query attribute syntax having the OID 1.3.6.1.4.1.36733.2.1.3.2. Attribute values of this syntax must be valid CREST JSON query filter strings as defined in QueryFilterParser.
      Returns:
      The JSON Query attribute syntax having the OID 1.3.6.1.4.1.36733.2.1.3.2.
    • getCaseIgnoreJsonQueryMatchingRule

      public static org.forgerock.opendj.ldap.schema.MatchingRule getCaseIgnoreJsonQueryMatchingRule()
      Returns the jsonQueryMatch matching rule having the OID 1.3.6.1.4.1.36733.2.1.4.1. The matching rule's assertion syntax is a CREST JSON query filter. This matching rule will ignore case when comparing JSON strings as well as ignoring white-space. In addition, all JSON fields will be indexed if indexing is enabled.
      Returns:
      The @code jsonQueryMatch} matching rule having the OID 1.3.6.1.4.1.36733.2.1.4.1.
    • getCaseExactJsonQueryMatchingRule

      public static org.forgerock.opendj.ldap.schema.MatchingRule getCaseExactJsonQueryMatchingRule()
      Returns the jsonQueryMatch matching rule having the OID 1.3.6.1.4.1.36733.2.1.4.2. The matching rule's assertion syntax is a CREST JSON query filter. This matching rule will ignore case when comparing JSON strings as well as ignoring white-space. In addition, all JSON fields will be indexed if indexing is enabled.
      Returns:
      The @code jsonQueryMatch} matching rule having the OID 1.3.6.1.4.1.36733.2.1.4.2.
    • newJsonQueryEqualityMatchingRuleImpl

      public static org.forgerock.opendj.ldap.schema.MatchingRuleImpl newJsonQueryEqualityMatchingRuleImpl(String matchingRuleName, org.forgerock.util.Options options)
      Creates a new custom JSON query equality matching rule implementation with the provided matching rule name and options. This method should be used when creating custom JSON matching rules whose behavior differs from getCaseIgnoreJsonQueryMatchingRule().
      Parameters:
      matchingRuleName - The name of the matching rule. This will be used as the index ID in attribute indexes so it must not collide with other indexes identifiers.
      options - The options controlling the behavior of the matching rule.
      Returns:
      The new custom JSON query equality matching rule implementation.
      See Also:
    • addJsonSyntaxesAndMatchingRulesToSchema

      public static org.forgerock.opendj.ldap.schema.SchemaBuilder addJsonSyntaxesAndMatchingRulesToSchema(org.forgerock.opendj.ldap.schema.SchemaBuilder builder)
      Adds the syntaxes and matching rules required by for JSON attribute support to the provided schema builder.
      Parameters:
      builder - The schema builder to which the schema elements should be added.
      Returns:
      The schema builder.
    • byteStringToJson

      public static org.forgerock.util.Function<org.forgerock.opendj.ldap.ByteString,Object,org.forgerock.i18n.LocalizedIllegalArgumentException> byteStringToJson()
      Returns a function which parses JSON values. Invalid values will result in a LocalizedIllegalArgumentException.
      Returns:
      A function which parses JSON values.
    • jsonToByteString

      public static org.forgerock.util.Function<Object,org.forgerock.opendj.ldap.ByteString,com.fasterxml.jackson.core.JsonProcessingException> jsonToByteString()
      Returns a function which converts a JSON Object to a ByteString.
      Returns:
      A function which converts a JSON Object to a ByteString.