模块  java.naming

Class BasicAttribute

  • 实现的所有接口
    SerializableCloneableAttribute

    public class BasicAttribute
    extends Object
    implements Attribute
    此类提供Attribute接口的基本实现。

    此实现不支持架构方法getAttributeDefinition()getAttributeSyntaxDefinition() 他们只是扔了OperationNotSupportedException BasicAttribute子类如果支持它们,则应覆盖这些方法。

    默认情况下, BasicAttribute类在测试相等性或搜索值时使用Object.equals()来确定属性值的相等性, 除非值是数组。 对于数组,使用Object.equals()检查数组的每个元素。 BasicAttribute子类在通过覆盖使用模式有意义的方法进行类似的相等性检查时可以使用模式信息。 类似地, BasicAttribute类默认返回传递给其构造函数和/或使用add / remove方法操作的值。 子类BasicAttribute可以覆盖get()getAll()以从目录动态获取值(或直接实现Attribute接口而不是子类化BasicAttribute )。

    请注意,对BasicAttribute更新(例如添加或删除值)不会影响目录中属性的相应表示形式。 只能使用DirContext界面中的操作来实现对目录的更新。

    BasicAttribute实例未与并发多线程访问同步。 尝试访问和修改BasicAttribute多个线程应锁定该对象。

    从以下版本开始:
    1.3
    另请参见:
    Serialized Form
    • 字段详细信息

      • attrID

        protected String attrID
        保存属性的id。 它由公共构造函数初始化,除非已覆盖使用attrID的BasicAttribute中的方法,否则不能为null。
      • values

        protected transient Vector<Object> values
        保存属性的值。 由公共构造函数初始化。 除非已覆盖使用值的BasicAttribute中的方法,否则不能为null。
      • ordered

        protected boolean ordered
        用于记录此属性的值是否已排序的标志。
    • 构造方法详细信息

      • BasicAttribute

        public BasicAttribute​(String id)
        构造一个没有值的无序属性的新实例。
        参数
        id - 属性的id。 它不能为空。
      • BasicAttribute

        public BasicAttribute​(String id,
                              Object value)
        使用单个值构造无序属性的新实例。
        参数
        id - 属性的id。 它不能为空。
        value - 属性的值。 如果为null,则为属性添加空值。
      • BasicAttribute

        public BasicAttribute​(String id,
                              boolean ordered)
        构造一个没有值的可能有序属性的新实例。
        参数
        id - 属性的id。 它不能为空。
        ordered - true表示将对该属性的值进行排序; 否则是假的。
      • BasicAttribute

        public BasicAttribute​(String id,
                              Object value,
                              boolean ordered)
        使用单个值构造可能有序属性的新实例。
        参数
        id - 属性的id。 它不能为空。
        value - 属性的值。 如果为null,则为属性添加空值。
        ordered - true表示将对属性的值进行排序; 否则是假的。
    • 方法详细信息

      • equals

        public boolean equals​(Object obj)
        确定obj是否等于此属性。 如果属性-id,语法和值相等,则两个属性相等。 如果属性值是无序的,则添加值的顺序无关紧要。 如果属性值是有序的,那么值必须匹配的顺序。 如果obj为null或不是Attribute,则返回false。

        默认情况下,在比较属性id及其值时使用Object.equals() ,除非值是数组。 对于数组,使用Object.equals()检查数组的每个元素。 子类可以重写此方法以使用模式语法信息和匹配规则,这些规则定义了两个属性相等的含义。 子类如何以及是否使用模式信息由子类确定。 如果子类重写equals() ,它还应覆盖hashCode() ,以使两个相等的属性具有相同的哈希码。

        重写:
        equals在类 Object
        参数
        obj - 要检查的可能为null的对象。
        结果
        如果obj等于此属性,则为true; 否则是假的。
        另请参见:
        hashCode()contains(java.lang.Object)
      • hashCode

        public int hashCode()
        计算此属性的哈希码。

        哈希码是通过添加属性id的哈希码和其所有值的哈希码来计算的,除了作为数组的值。 对于数组,对数组中每个元素的哈希码求和。 如果子类重写hashCode() ,它也应该重写equals() ,以便两个相等的属性具有相同的哈希码。

        重写:
        hashCode在类 Object
        结果
        表示此属性的哈希码的int。
        另请参见:
        equals(java.lang.Object)
      • toString

        public String toString()
        生成此属性的字符串表示形式。 该字符串由属性的id及其值组成。 此字符串用于调试,而不是以编程方式解释。
        重写:
        toString在类 Object
        结果
        此属性的非null字符串表示形式。
      • getAll

        public NamingEnumeration<?> getAll()
                                    throws NamingException
        检索此属性值的枚举。

        默认情况下,返回的值是传递给构造函数和/或使用add / replace / remove方法操作的值。 子类可以重写此方法以从目录动态检索值。

        Specified by:
        getAll ,界面 Attribute
        结果
        属性值的非null枚举。 枚举的每个元素都是一个可能为null的Object。 对象的类是属性值的类。 如果属性的值为null,则该元素为null。 如果属性的值为零,则返回空枚举。
        异常
        NamingException - 如果在检索值时遇到命名异常。
        另请参见:
        Attribute.isOrdered()
      • get

        public Object get()
                   throws NamingException
        检索此属性的值之一。

        默认情况下,返回的值是传递给构造函数和/或使用add / replace / remove方法操作的值之一。 子类可以重写此方法以从目录动态检索值。

        Specified by:
        get在接口 Attribute
        结果
        可能为null的对象,表示属性的值之一。 如果属性的值为null,则为null。
        异常
        NamingException - 如果在检索值时遇到命名异常。
      • contains

        public boolean contains​(Object attrVal)
        确定值是否在此属性中。

        默认情况下, Object.equals()比较当使用attrVal与此属性的值时除外attrVal是一个数组。 对于数组,使用Object.equals()检查数组的每个元素。 子类可以使用模式信息来确定相等性。

        Specified by:
        contains ,界面 Attribute
        参数
        attrVal - 要检查的可能为null的值。 如果为null,请检查该属性是否具有值为null的属性值。
        结果
        如果attrVal是此属性的值之一,则为true; 否则是假的。
        另请参见:
        Object.equals(java.lang.Object)equals(java.lang.Object)
      • add

        public boolean add​(Object attrVal)
        为此属性添加新值。

        默认情况下, Object.equals()比较当使用attrVal与此属性的值时除外attrVal是一个数组。 对于数组,使用Object.equals()检查数组的每个元素。 子类可以使用模式信息来确定相等性。

        Specified by:
        add在接口 Attribute
        参数
        attrVal - 要添加的新可能为null的值。 如果为null,则将null添加为属性值。
        结果
        如果添加了值,则为true; 否则是假的。
      • remove

        public boolean remove​(Object attrval)
        从此属性中删除指定的值。

        默认情况下, Object.equals()比较当使用attrVal与此属性的值时除外attrVal是一个数组。 对于数组,使用Object.equals()检查数组的每个元素。 子类可以使用模式信息来确定相等性。

        Specified by:
        remove ,界面 Attribute
        参数
        attrval - 要从此属性中删除的可能为null的值。 如果为null,则删除null的属性值。
        结果
        如果删除了值,则为true; 否则是假的。
      • getAttributeSyntaxDefinition

        public DirContext getAttributeSyntaxDefinition()
                                                throws NamingException
        检索与此属性关联的语法定义。

        默认情况下,此方法会抛出OperationNotSupportedException。 如果子类支持模式,则子类应重写此方法。

        Specified by:
        getAttributeSyntaxDefinition在界面 Attribute
        结果
        属性的语法定义。 如果实现支持模式但是此特定属性没有任何模式信息,则为空。
        异常
        OperationNotSupportedException - 如果不支持获取架构。
        NamingException - 如果在获取架构时发生命名异常。
      • getAttributeDefinition

        public DirContext getAttributeDefinition()
                                          throws NamingException
        检索此属性的架构定义。

        默认情况下,此方法会抛出OperationNotSupportedException。 如果子类支持模式,则子类应重写此方法。

        Specified by:
        getAttributeDefinition ,界面 Attribute
        结果
        此属性的架构定义。 如果实现支持模式但是此特定属性没有任何模式信息,则为空。
        异常
        OperationNotSupportedException - 如果不支持获取架构。
        NamingException - 如果在获取架构时发生命名异常。