Module java.naming

Interface Attribute

所有超级接口:
Cloneable, Serializable
所有已知实现类:
BasicAttribute

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

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

属性及其值的内容和表示由属性的 模式 定义。模式包含有关属性的语法和属性的其他属性的信息。有关如何获取有关属性的模式信息的详细信息,请参阅 getAttributeDefinition()getAttributeSyntaxDefinition()

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

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

自:
1.3
另请参阅:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final long
    已弃用。
    在接口中的 serialVersionUID 字段是无效的。
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    add(int ix, Object attrVal)
    将属性值添加到有序属性值列表中。
    boolean
    add(Object attrVal)
    向属性添加一个新值。
    void
    clear()
    从此属性中删除所有值。
    clone()
    复制属性。
    boolean
    contains(Object attrVal)
    确定属性中是否存在值。
    get()
    检索此属性的一个值。
    get(int ix)
    从有序属性值列表中检索属性值。
    getAll()
    检索属性值的枚举。
    检索属性的模式定义。
    检索与属性关联的语法定义。
    getID()
    检索此属性的ID。
    boolean
    确定此属性的值是否有序。
    remove(int ix)
    从有序属性值列表中删除属性值。
    boolean
    remove(Object attrval)
    从属性中删除指定的值。
    set(int ix, Object attrVal)
    在有序属性值列表中设置属性值。
    int
    size()
    检索此属性中的值数量。
  • Field Details

    • serialVersionUID

      @Deprecated static final long serialVersionUID
      Deprecated.
      A serialVersionUID field in an interface is ineffectual. Do not use; no replacement.
      为了互操作性,使用 JNDI 1.1.1 中的 serialVersionUID。
      另请参阅:
  • Method Details

    • getAll

      NamingEnumeration<?> getAll() throws NamingException
      检索属性值的枚举。如果在枚举进行时添加、更改或删除属性值,则此枚举的行为是未指定的。如果属性值是有序的,则枚举的项将是有序的。
      返回:
      属性值的非空枚举。枚举的每个元素都是可能为null的对象。如果属性值为null,则元素为null。如果属性没有值,则返回空枚举。
      抛出:
      NamingException - 在检索值时遇到命名异常。
      另请参阅:
    • 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;否则返回false。
      另请参阅:
    • add

      boolean add(Object attrVal)
      向属性添加一个新值。如果属性值是无序的且 attrVal 已经在属性中,则此方法不执行任何操作。如果属性值是有序的,则将 attrVal 添加到属性值列表的末尾。

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

      参数:
      attrVal - 要添加的新可能为null的值。如果为null,则将null作为属性值添加。
      返回:
      如果添加了一个值,则返回true;否则返回false。
    • remove

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

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

      参数:
      attrval - 要从此属性中删除的可能为null的值。如果为null,则删除属性值为null的属性值。
      返回:
      如果已删除该值,则返回true;否则返回false。
    • clear

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

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

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

      您可以从语法定义中检索的信息取决于目录。

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

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

      DirContext getAttributeDefinition() throws NamingException
      检索属性的模式定义。属性的模式定义包含诸如属性是多值还是单值、在比较属性值时要使用的匹配规则等信息。您可以从属性定义中检索的信息取决于目录。

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

      返回:
      此属性的模式定义。如果实现支持模式但此特定属性没有任何模式信息,则为null。
      抛出:
      OperationNotSupportedException - 如果不支持获取模式。
      NamingException - 在获取模式时发生命名异常。
    • clone

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

      boolean isOrdered()
      确定此属性的值是否有序。如果属性的值是有序的,则允许重复值。如果属性的值是无序的,则以任意顺序呈现,并且没有重复值。
      返回:
      如果此属性的值有序,则为true;否则为false。
      参见:
    • 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的值向列表前部移动(其索引减一)。
      参数:
      ix - 要删除的值的索引。0 <= ix < size()
      返回:
      已删除的可能为null的属性值列表中索引为ix的值;如果属性值为null,则返回null。
      抛出:
      IndexOutOfBoundsException - 如果ix超出指定范围。
    • add

      void add(int ix, Object attrVal)
      向有序属性值列表中添加属性值。此方法将attrVal添加到属性值列表的索引ix处。位于索引大于或等于ix的值向列表末尾移动(其索引加一)。如果属性值是无序的并且已经存在attrVal,则抛出IllegalStateException
      参数:
      ix - 要添加新值的有序属性值列表中的索引。0 <= ix <= size()
      attrVal - 要添加的可能为null的属性值;如果为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'替换旧值。
      返回:
      已替换的可能为null的属性值列表中索引为ix的值。如果属性值为null,则返回null。
      抛出:
      IndexOutOfBoundsException - 如果ix超出指定范围。
      IllegalStateException - 如果attrVal已经存在且属性值是无序的。