模块  java.naming

Interface Attribute

  • All Superinterfaces:
    CloneableSerializable
    所有已知实现类:
    BasicAttribute

    public interface Attribute
    extends Cloneable, Serializable
    此接口表示与命名对象关联的属性。

    在目录中,命名对象可以与它们相关联。 Attribute接口表示与命名对象关联的属性。 属性包含0个或更多,可能为null的值。 属性值可以是有序的或无序的(参见isOrdered() )。 如果值无序,则不允许重复。 如果值是有序的,则允许重复。

    属性及其值的内容和表示由属性的模式定义。 架构包含有关属性的语法和有关属性的其他属性的信息。 有关如果基础目录服务支持模式,如何获取有关属性的模式信息的详细信息,请参见getAttributeDefinition()getAttributeSyntaxDefinition()

    两个属性的等同性由实现类确定。 一个简单的实现可以使用Object.equals()来确定属性值的相等性,而更复杂的实现可以使用模式信息来确定相等性。 类似地,一个实现可能提供静态存储结构, get()返回传递给其构造函数的值,而另一个实现可能定义get()getAll() 从目录动态获取值。

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

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

      • serialVersionUID

        static final long serialVersionUID
        使用JNDI 1.1.1中的serialVersionUID实现互操作性。
        另请参见:
        常数字段值
    • 方法详细信息

      • getAll

        NamingEnumeration<?> getAll()
                             throws NamingException
        检索属性值的枚举。 如果在枚举正在进行时添加,更改或删除属性的值,则不会指定此枚举的行为。 如果订购了属性值,则将对订单的项目进行排序。
        结果
        属性值的非null枚举。 枚举的每个元素都是一个可能为null的Object。 对象的类是属性值的类。 如果属性的值为null,则该元素为null。 如果属性的值为零,则返回空枚举。
        异常
        NamingException - 如果在检索值时遇到命名异常。
        另请参见:
        isOrdered()
      • get

        Object get()
            throws NamingException
        检索此属性的值之一。 如果属性具有多个值且无序,则返回任何一个值。 如果属性具有多个值并且已排序,则返回第一个值。
        结果
        可能为null的对象,表示属性的值之一。 如果属性的值为null,则为null。
        异常
        NamingException - 如果在检索值时遇到命名异常。
        NoSuchElementException - 如果此属性没有值。
      • size

        int size()
        检索此属性中的值的数量。
        结果
        此属性中的非负数值。
      • getID

        String getID()
        检索此属性的ID。
        结果
        此属性的ID。 它不能为空。
      • contains

        boolean contains​(Object attrVal)
        确定值是否在属性中。 平等由实现决定,可以使用Object.equals()或模式信息来确定相等性。
        参数
        attrVal - 要检查的可能为null的值。 如果为null,请检查该属性是否具有值为null的属性值。
        结果
        如果attrVal是此属性的值之一,则为true; 否则是假的。
        另请参见:
        Object.equals(java.lang.Object)BasicAttribute.equals(java.lang.Object)
      • add

        boolean add​(Object attrVal)
        为属性添加新值。 如果属性值无序且attrVal已在属性中,则此方法不执行任何操作。 如果属性值已排序, attrValattrVal添加到属性值列表的末尾。

        平等由实现决定,可以使用Object.equals()或模式信息来确定相等性。

        参数
        attrVal - 要添加的新可能为null的值。 如果为null,则将null添加为属性值。
        结果
        如果添加了值,则为true; 否则是假的。
      • remove

        boolean remove​(Object attrval)
        从属性中删除指定的值。 如果attrval不在属性中,则此方法不执行任何操作。 如果属性值是有序的,则删除第一次出现的attrVal ,并且索引大于移除值的属性值向上移向列表的头部(并且它们的索引递减1)。

        平等由实现决定,可以使用Object.equals()或模式信息来确定相等性。

        参数
        attrval - 要从此属性中删除的可能为null的值。 如果为null,则删除null的属性值。
        结果
        如果删除了值,则为true; 否则是假的。
      • clear

        void clear()
        从此属性中删除所有值。
      • getAttributeSyntaxDefinition

        DirContext getAttributeSyntaxDefinition()
                                         throws NamingException
        检索与该属性关联的语法定义。 属性的语法定义指定属性值的格式。 请注意,这与属性值作为Java对象的表示形式不同。 语法定义是指目录的语法概念。

        例如,即使值可能是Java String对象,其目录语法也可能是“可打印字符串”或“电话号码”。 或者值可能是字节数组,其目录语法是“JPEG”或“证书”。 例如,如果此属性的语法为“JPEG”,则此方法将返回“JPEG”的语法定义。

        您可以从语法定义中检索的信息与目录相关。

        如果实现不支持模式,则应抛出OperationNotSupportedException。 如果实现确实支持模式,则应定义此方法以返回适当的信息。

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

        DirContext getAttributeDefinition()
                                   throws NamingException
        检索属性的架构定义。 属性的模式定义包含诸如属性是多值还是单值的信息,以及比较属性值时要使用的匹配规则。 您可以从属性定义中检索的信息与目录相关。

        如果实现不支持模式,则应抛出OperationNotSupportedException。 如果实现确实支持模式,则应定义此方法以返回适当的信息。

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

        Object clone()
        制作属性的副本。 副本包含与原始属性相同的属性值:属性值本身不会被克隆。 对副本的更改不会影响原件,反之亦然。
        结果
        属性的非null副本。
      • isOrdered

        boolean isOrdered()
        确定此属性的值是否已排序。 如果对属性的值进行排序,则允许重复值。 如果属性的值是无序的,则它们以任何顺序显示,并且没有重复值。
        结果
        如果此属性的值已排序,则为true;否则为false。 否则是假的。
        另请参见:
        get(int)remove(int)add(int, java.lang.Object)set(int, java.lang.Object)
      • get

        Object get​(int ix)
            throws NamingException
        从有序的属性值列表中检索属性值。 此方法返回属性值列表的ix索引处的值。 如果属性值是无序的,则此方法返回恰好在该索引处的值。
        参数
        ix - 属性值的有序列表中的值的索引。 0 <= ix < size()
        结果
        索引ix处的可能为null的属性值; 如果属性值为null,则返回null。
        异常
        NamingException - 如果在检索值时遇到命名异常。
        IndexOutOfBoundsException - 如果 ix超出指定范围。
      • remove

        Object remove​(int ix)
        从有序的属性值列表中删除属性值。 此方法删除属性值列表的ix索引处的值。 如果属性值是无序的,则此方法将删除恰好在该索引处的值。 位于索引大于ix值向上移向列表的前面(并且它们的索引递减1)。
        参数
        ix - 要删除的值的索引。 0 <= ix < size()
        结果
        已删除索引ix处的可能为null的属性值; 如果属性值为null,则返回null。
        异常
        IndexOutOfBoundsException - 如果 ix超出指定范围。
      • add

        void add​(int ix,
                 Object attrVal)
        将属性值添加到有序的属性值列表中。 此方法将attrVal添加到索引ix的属性值列表中。 位于或大于ix索引处的值向下移向列表的末尾(并且它们的索引递增1)。 如果属性值无序并且已经有attrVal ,则抛出IllegalStateException
        参数
        ix - 要添加新值的属性值的有序列表中的索引。 0 <= ix <= size()
        attrVal - 要添加的可能为null的属性值; 如果为null,则为添加的值。
        异常
        IndexOutOfBoundsException - 如果 ix超出指定范围。
        IllegalStateException - 如果属性值无序且 attrVal是其中一个值。
      • set

        Object set​(int ix,
                   Object attrVal)
        在有序的属性值列表中设置属性值。 此方法将属性值列表的ix索引处的值设置为attrVal 旧值被删除。 如果属性值是无序的,则此方法将恰好在该索引处的值设置为attrVal ,除非attrVal已经是其中一个值。 在这种情况下,抛出IllegalStateException
        参数
        ix - 有序属性值列表中的值的索引。 0 <= ix < size()
        attrVal - 要使用的可能为null的属性值。 如果为null,则“null”将替换旧值。
        结果
        索引ix处可能为null的属性值已被替换。 如果属性值为null,则为空。
        异常
        IndexOutOfBoundsException - 如果 ix超出指定范围。
        IllegalStateException - 如果 attrVal已存在且属性值无序。