Class Attribute

    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected AttributeType attrType
      Attribute type (should never be null after leaving constructor).
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected Attribute()
      Used by the native library when creating a new empty object
        Attribute​(AttributeType attrType)
      Create an empty new Attribute object.
        Attribute​(AttributeType attrType, AttributeValue attrValue)
      Constructs an Attribute of specific type and value.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addValue​(AttributeValue value)
      Add a value to the list of values for this Attribute.
      void addValue​(java.lang.String valueString)
      Add a value to the list of values for this attribute.
      void clearValuesList()
      Clear values list.
      int compareTo​(Attribute oo)
      Compare this Attribute with another one, returning an ordering based on syntax-specific comparisons.
      boolean equals​(java.lang.Object other)
      Test whether two Attributes are equal according to syntax-specific comparisons: tests whether they have the same attribute type and all the same values (although perhaps in a different order).
      int exactCompareTo​(Attribute oo)
      Compare this Attribute with another one, returning an ordering based on comparisons on the exact values (without using syntax-specific comparisons).
      boolean exactEquals​(java.lang.Object other)
      Test whether two Attributes are exactly equal according to matching the strings, binary values or BER values exactly: tests whether they have the same attribute type and exactly the same values (although perhaps in a different order).
      protected void finalize()
      Releases any native structures associated with this object.
      java.lang.String getAttributeName()
      Returns a String representing the attribute type name.
      AttributeType getAttributeType()
      Returns the attribute type.
      Attribute getNormalizedAttribute()
      Return a new Attribute containing normalised versions of all the values contained in this Attribute.
      int getSyntaxID()
      Returns the integer representing the syntax ID for this Attribute.
      java.lang.String getSyntaxName()
      Returns a String representing the syntax for this object.
      AttributeValue getValue​(int pos)
      Get a specific AttributeValue from the set of values associated with this Attribute.
      int getValueCount()
      Returns value count.
      boolean hasAttributeType​(AttributeType otherAttrType)
      Determines if this object has a particular AttributeType.
      int hashCode()
      Calculate a hash-code consistent with the equals() method.
      boolean hasSyntax​(int syntax)
      Checks if this Attribute has a particular syntax.
      java.util.Iterator<AttributeValue> iterator()
      Returns an iterator over the values in this Attribute.
      Attribute relocate​(DN... source_target_list)
      If this Attribute contains DNs, and one or more of those DNs are within one of the subtrees indicated by the arguments, then those DN are relocated to the same relative location within the corresponding 'target' subtree (using DN.getRelocatedDN()), and a new Attribute is created and returned.
      Attribute relocate​(DN source, DN target)
      If this Attribute contains DNs, and one or more of those DNs are within the subtree indicated by 'source', then they are relocated to the same relative location within the 'target' subtree (using DN.getRelocatedDN()), and a new Attribute is created and returned.
      java.lang.String toString()
      Returns a String representation of this Attribute.
      • Methods inherited from class java.lang.Object

        clone, getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.lang.Iterable

        forEach, spliterator
    • Field Detail

      • attrType

        protected AttributeType attrType
        Attribute type (should never be null after leaving constructor).
    • Method Detail

      • finalize

        protected void finalize()
                         throws java.lang.Throwable
        Releases any native structures associated with this object.
        Overrides:
        finalize in class java.lang.Object
        Throws:
        java.lang.Throwable
      • clearValuesList

        public final void clearValuesList()
        Clear values list.
      • getAttributeType

        public AttributeType getAttributeType()
        Returns the attribute type.
        Returns:
        The attribute type (not null).
      • hasAttributeType

        public boolean hasAttributeType​(AttributeType otherAttrType)
        Determines if this object has a particular AttributeType.
        Parameters:
        otherAttrType - an AttributeType (not null)
        Returns:
        true if of given type, false otherwise.
      • hasSyntax

        public boolean hasSyntax​(int syntax)
                          throws NativeLibraryException
        Checks if this Attribute has a particular syntax.
        Parameters:
        syntax - An integer representing a syntax id, as may be obtained from DSapi.nameToSyntaxID(String)
        Returns:
        true if attribute has given syntax, false otherwise (or if syntax is an invalid syntax).
        Throws:
        NativeLibraryException - if an unrecoverable error was detected by the native library.
        See Also:
        getSyntaxID()
      • addValue

        public void addValue​(java.lang.String valueString)
                      throws BadValueException
        Add a value to the list of values for this attribute. This method creates a AttributeValue object using the appropriate AttributeType and adds it to the list of values.
        Parameters:
        valueString - a String representation of an attribute value (not null)
        Throws:
        BadValueException - if valueString is not a valid string representation for a value of this object's AttributeType.
        Since:
        14.6
        See Also:
        addValue(AttributeValue)
      • getValue

        public AttributeValue getValue​(int pos)
        Get a specific AttributeValue from the set of values associated with this Attribute.
        Parameters:
        pos - Position of value in list, which is numbered starting from zero to getValueCount()-1.
        Returns:
        the requested AttributeValue (not null)
        Throws:
        java.lang.ArrayIndexOutOfBoundsException - if pos is out of range.
        NativeLibraryException - if an unrecoverable error was detected by the native library.
        See Also:
        getValueCount()
      • getValueCount

        public int getValueCount()
        Returns value count.
        Returns:
        count of how many values exist for this Attribute.
        See Also:
        getValue(int)
      • hashCode

        public int hashCode()
        Calculate a hash-code consistent with the equals() method.
        Overrides:
        hashCode in class java.lang.Object
        Since:
        14.5
      • equals

        public boolean equals​(java.lang.Object other)
        Test whether two Attributes are equal according to syntax-specific comparisons: tests whether they have the same attribute type and all the same values (although perhaps in a different order).
        Overrides:
        equals in class java.lang.Object
        Since:
        14.5
      • compareTo

        public int compareTo​(Attribute oo)
        Compare this Attribute with another one, returning an ordering based on syntax-specific comparisons. The lists of values in the two Attributes are temporarily sorted before comparing them to make the results consistent. This call corresponds to the Attribute.equals() method.
        Specified by:
        compareTo in interface java.lang.Comparable<Attribute>
        Returns:
        -1: this attribute comes before the argument in the sort-order, 0: the attributes are equal, 1: this attribute comes after the argument in the sort-order
        Since:
        14.5
      • exactEquals

        public boolean exactEquals​(java.lang.Object other)
        Test whether two Attributes are exactly equal according to matching the strings, binary values or BER values exactly: tests whether they have the same attribute type and exactly the same values (although perhaps in a different order).
        Since:
        14.5
      • exactCompareTo

        public int exactCompareTo​(Attribute oo)
        Compare this Attribute with another one, returning an ordering based on comparisons on the exact values (without using syntax-specific comparisons). The lists of values in the two Attributes are temporarily sorted before comparing them to make the results consistent. This call corresponds to the Attribute.exactEquals() method.
        Returns:
        -1: this attribute comes before the argument in the sort-order, 0: the attributes are equal, 1: this attribute comes after the argument in the sort-order
        Since:
        14.5
      • toString

        public java.lang.String toString()
        Returns a String representation of this Attribute.
        Overrides:
        toString in class java.lang.Object
        Returns:
        a String representation of this Attribute (not null).
      • iterator

        public java.util.Iterator<AttributeValue> iterator()
        Returns an iterator over the values in this Attribute.
        Specified by:
        iterator in interface java.lang.Iterable<AttributeValue>
        Returns:
        an iterator that can be used to process all the AttributeValues in this Attribute (not null).
      • relocate

        public Attribute relocate​(DN source,
                                  DN target)
        If this Attribute contains DNs, and one or more of those DNs are within the subtree indicated by 'source', then they are relocated to the same relative location within the 'target' subtree (using DN.getRelocatedDN()), and a new Attribute is created and returned. Otherwise the current Attribute is returned.

        At the moment this only relocates DN-syntax values, but in the future it may be expanded to relocate ORNames and other types.

        Parameters:
        source - DN of base of source subtree (not null)
        target - DN of base of target subtree (not null)
        Returns:
        Resulting Attribute, or this if no change was necessary
        Since:
        14.6
      • relocate

        public Attribute relocate​(DN... source_target_list)
        If this Attribute contains DNs, and one or more of those DNs are within one of the subtrees indicated by the arguments, then those DN are relocated to the same relative location within the corresponding 'target' subtree (using DN.getRelocatedDN()), and a new Attribute is created and returned. Otherwise the current Attribute is returned.

        At the moment this only relocates DN-syntax values, but in the future it may be expanded to relocate ORNames and other types.

        Parameters:
        source_target_list - Array of an even number of DNs, handled in pairs. Of each pair, the first is treated as a source subtree, and the second as a target subtree. The DN is matched against source DNs in the list from the start to the end, and the first pair that it matches is the relocation that is performed. If there are no matches the DN is left unchanged. (not null)
        Returns:
        Resulting Attribute, or this if no change was necessary
        Since:
        15.0