模块 java.naming

接口 Attribute

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

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

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

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

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

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

自从:
1.3
参见:
  • 字段摘要

    字段
    修饰符和类型
    Field
    描述
    static final long
    已弃用。
    接口中的 serialVersionUID 字段无效。
  • 方法总结

    修饰符和类型
    方法
    描述
    void
    add(int ix, Object attrVal)
    将属性值添加到属性值的有序列表中。
    boolean
    add(Object attrVal)
    向属性添加新值。
    void
    从此属性中删除所有值。
    制作属性的副本。
    boolean
    contains(Object attrVal)
    确定值是否在属性中。
    get()
    检索此属性的值之一。
    get(int ix)
    从有序的属性值列表中检索属性值。
    检索属性值的枚举。
    检索属性的架构定义。
    检索与属性关联的语法定义。
    检索此属性的 ID。
    boolean
    确定此属性的值是否有序。
    remove(int ix)
    从有序的属性值列表中删除一个属性值。
    boolean
    remove(Object attrval)
    从属性中删除指定的值。
    set(int ix, Object attrVal)
    在有序的属性值列表中设置一个属性值。
    int
    size()
    检索此属性中的值数。
  • 字段详细信息

    • serialVersionUID

      @Deprecated static final long serialVersionUID
      已弃用。
      接口中的 serialVersionUID 字段无效。不使用;没有替代品。
      使用 JNDI 1.1.1 中的 serialVersionUID 实现互操作性。
      参见:
  • 方法详情

    • getAll

      NamingEnumeration <?> getAll() throws NamingException
      检索属性值的枚举。如果在枚举过程中添加、更改或删除属性的值,则此枚举的行为未指定。如果属性值是有序的,则枚举的项目也将是有序的。
      返回:
      属性值的非空枚举。枚举的每个元素都是一个可能为空的对象。对象的类是属性值的类。如果属性的值为空,则元素为空。如果该属性具有零值,则返回一个空枚举。
      抛出:
      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的属性值。
      返回:
      如果 attrVal 是此属性的值之一,则为真;否则为假。
      参见:
    • add

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

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

      参数:
      attrVal - 要添加的新的可能为空的值。如果为 null,则将 null 添加为属性值。
      返回:
      如果添加了值,则为真;否则为假。
    • remove

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

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

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

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

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

      例如,即使值可能是 Java String 对象,其目录语法也可能是“Printable String”或“Telephone Number”。或者一个值可能是一个字节数组,其目录语法是“JPEG”或“证书”。例如,如果此属性的语法是“JPEG”,则此方法将返回“JPEG”的语法定义。

      您可以从语法定义中检索的信息是依赖于目录的。

      如果一个实现不支持模式,它应该抛出 OperationNotSupportedException。如果一个实现确实支持模式,它应该定义这个方法来返回适当的信息。

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

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

      如果一个实现不支持模式,它应该抛出 OperationNotSupportedException。如果一个实现确实支持模式,它应该定义这个方法来返回适当的信息。

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

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

      boolean isOrdered()
      确定此属性的值是否有序。如果属性的值是有序的,则允许重复值。如果一个属性的值是无序的,它们会以任何顺序出现并且没有重复值。
      返回:
      如果此属性的值是有序的,则为真;否则为假。
      参见:
    • 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。
      抛出:
      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 - 要使用的可能为空的属性值。如果为空,“空”将替换旧值。
      返回:
      索引 ix 处被替换的可能为空的属性值。如果属性值为空,则为空。
      抛出:
      IndexOutOfBoundsException - 如果 ix 超出指定范围。
      IllegalStateException - 如果 attrVal 已经存在并且属性值是无序的。