Class SchemaUtils

    • Method Detail

      • getTargetEntry

        public static Entry getTargetEntry​(List<? extends Modification> mods,
                                           Entry entry)
                                    throws LdapException
        Gets the target entry as it would look after a modification operation were performed on it.
        Parameters:
        mods - the modifications performed on the entry
        entry - the source entry that is modified
        Returns:
        the resultant entry after the modifications have taken place
        Throws:
        LdapException - if there are problems accessing attributes
      • render

        public static StringBuilder render​(StringBuilder buf,
                                           List<String> qdescrs)
        Renders qdescrs into an existing buffer.
        Parameters:
        buf - the string buffer to render the quoted description strs into
        qdescrs - the quoted description strings to render
        Returns:
        the same string buffer that was given for call chaining
      • render

        public static StringBuilder render​(ObjectClass[] ocs)
        Renders a list of object classes for things like a list of superior objectClasses using the ( oid $ oid ) format.
        Parameters:
        ocs - the objectClasses to list
        Returns:
        a buffer which contains the rendered list
      • render

        public static StringBuilder render​(StringBuilder buf,
                                           ObjectClass[] ocs)
        Renders a list of object classes for things like a list of superior objectClasses using the ( oid $ oid ) format into an existing buffer.
        Parameters:
        buf - the string buffer to render the list of objectClasses into
        ocs - the objectClasses to list
        Returns:
        a buffer which contains the rendered list
      • render

        public static StringBuilder render​(AttributeType[] ats)
        Renders a list of attributeTypes for things like the must or may list of objectClasses using the ( oid $ oid ) format.
        Parameters:
        ats - the attributeTypes to list
        Returns:
        a buffer which contains the rendered list
      • render

        public static StringBuilder render​(StringBuilder buf,
                                           AttributeType[] ats)
        Renders a list of attributeTypes for things like the must or may list of objectClasses using the ( oid $ oid ) format into an existing buffer.
        Parameters:
        buf - the string buffer to render the list of attributeTypes into
        ats - the attributeTypes to list
        Returns:
        a buffer which contains the rendered list
      • render

        public static StringBuilder render​(Map<String,​List<String>> extensions)
        Renders the schema extensions into a new StringBuffer.
        Parameters:
        extensions - the schema extensions map with key and values
        Returns:
        a StringBuffer with the extensions component of a syntax description
      • render

        public static String render​(LoadableSchemaObject description)
        Returns a String description of a schema. The resulting String format is :
        (OID [DESC '<description>'] FQCN <fcqn> [BYTECODE <bytecode>] X-SCHEMA '<schema>')
        Parameters:
        description - The description to transform to a String
        Returns:
        The rendered schema object
      • stripOptions

        public static String stripOptions​(String attributeId)
        Remove the options from the attributeType, and returns the ID.
        RFC 4512 :
         attributedescription = attributetype options
         attributetype = oid
         options = *( SEMI option )
         option = 1*keychar
         
        Parameters:
        attributeId - The AttributeType to parse
        Returns:
        The AttributeType without its options
      • getOptions

        public static Set<StringgetOptions​(String attributeId)
        Get the options from the attributeType.
        For instance, given : jpegphoto;binary;lang=jp
        your get back a set containing { "binary", "lang=jp" }
        Parameters:
        attributeId - The AttributeType to parse
        Returns:
        a Set of options found for this AttributeType, or null
      • uuidToBytes

        public static byte[] uuidToBytes​(UUID uuid)
        Transform an UUID in a byte array
        Parameters:
        uuid - The UUID to transform
        Returns:
        The byte[] representing the UUID
      • isAttributeNameValid

        public static boolean isAttributeNameValid​(String attributeName)
        Tells if an AttributeType name is valid or not. An Attribute name is valid if it's a descr / numericoid, as described in rfc4512 :
         name = descr / numericOid
         descr = keystring
         keystring = leadkeychar *keychar
         leadkeychar = ALPHA
         keychar = ALPHA / DIGIT / HYPHEN / USCORE
         numericoid = number 1*( DOT number )
         number  = DIGIT / ( LDIGIT 1*DIGIT )
         ALPHA   = %x41-5A / %x61-7A   ; "A"-"Z" / "a"-"z"
         DIGIT   = %x30 / LDIGIT       ; "0"-"9"
         HYPHEN  = %x2D ; hyphen ("-")
         LDIGIT  = %x31-39             ; "1"-"9"
         DOT     = %x2E ; period (".")
         USCORE  = %x5F ; underscore ("_")
         
        Note that we have extended this grammar to accept the '_' char, which is widely used in teh LDAP world.
        Parameters:
        attributeName - The AttributeType name to check
        Returns:
        true if it's valid