Module  java.naming

Interface Attribute

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


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

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

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

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

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

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

      • serialVersionUID

        static final long serialVersionUID
        使用JNDI 1.1.1的serialVersionUID进行互操作。
        另请参见:
        Constant Field Values
    • 方法详细信息

      • getAll

        NamingEnumeration<?> getAll​()
                             throws NamingException
        检索属性值的枚举。 如果在枚举过程中添加,更改或删除属性的值,则此枚举的行为是未指定的。 如果属性值被排序,则枚举的项将被排序。
        结果
        属性值的非空枚举。 枚举的每个元素都是可能为空的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中已有attrVal ,则此方法不执行任何操作。 如果属性值被排序, attrVal添加到属性值列表的末尾。

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

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

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

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

        参数
        attrval - 从该属性中删除的可能的空值。 如果为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​()
        制作属性的副本。 该副本包含与原始属性相同的属性值:属性值本身不被克隆。 副本的更改不会影响原始文件,反之亦然。
        结果
        属性的非空拷贝。
      • isOrdered

        boolean isOrdered​()
        确定此属性的值是否被排序。 如果一个属性的值被排序,则允许重复的值。 如果一个属性的值是无序的,它们以任何顺序呈现,并且没有重复的值。
        结果
        如果此属性的值被排序,则为true; 否则为假。
        另请参见:
        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。
        异常
        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的属性值被替换。 如果属性值为空,则为空。
        异常
        IndexOutOfBoundsException - 如果 ix在指定范围之外。
        IllegalStateException - 如果 attrVal已经存在且属性值无序。