Module java.naming
Package javax.naming.spi

Class DirectoryManager

java.lang.Object
javax.naming.spi.NamingManager
javax.naming.spi.DirectoryManager

public class DirectoryManager extends NamingManager
这个类包含支持DirContext实现的方法。

这个类是NamingManager的扩展。它包含供服务提供者使用的方法,用于访问对象工厂和状态工厂,并获取支持联合的继续上下文。

DirectoryManager可以安全地被多个线程并发访问。

除非另有说明,传递给任何方法的NameAttributes或环境参数都由调用者拥有。实现不会修改对象或保留对其的引用,尽管它可能会保留对克隆或副本的引用。

自从:
1.3
参见:
  • Method Details

    • getContinuationDirContext

      public static DirContext getContinuationDirContext(CannotProceedException cpe) throws NamingException
      创建一个上下文,用于继续DirContext操作。操作方式与NamingManager.getContinuationContext()相同,只是返回的继续上下文是DirContext
      参数:
      cpe - 触发此继续操作的非空异常。
      返回:
      用于继续操作的非空DirContext对象。
      抛出:
      NamingException - 如果发生命名异常。
      参见:
    • getObjectInstance

      public static Object getObjectInstance(Object refInfo, Name name, Context nameCtx, Hashtable<?,?> environment, Attributes attrs) throws Exception
      为指定的对象、属性和环境创建一个对象的实例。

      此方法与NamingManager.getObjectInstance相同,除了以下差异:

      • 它接受一个包含与对象关联的属性的Attributes参数。 DirObjectFactory可能使用这些属性来避免从目录中查找它们。
      • 尝试的对象工厂必须实现ObjectFactoryDirObjectFactory。如果它实现了DirObjectFactory,则使用DirObjectFactory.getObjectInstance(),否则使用ObjectFactory.getObjectInstance()
      实现DirContext接口的服务提供者应该使用此方法,而不是NamingManager.getObjectInstance()
      参数:
      refInfo - 要创建对象的可能为空的对象。
      name - 相对于nameCtx的此对象的名称。指定名称是可选的;如果省略,name应为null。
      nameCtx - 指定name参数的上下文。如果为null,则name相对于默认初始上下文。
      environment - 用于创建对象工厂和对象的可能为空的环境。
      attrs - 与refInfo关联的可能为空的属性。这可能不是refInfo的完整属性集;您可能能够从目录中读取更多属性。
      返回:
      使用refInfoattrs创建的对象;如果无法通过工厂创建对象,则为refInfo
      抛出:
      NamingException - 如果在尝试获取URL上下文时遇到命名异常,或者访问的工厂之一抛出NamingException。
      Exception - 如果访问的工厂之一抛出异常,或者在加载和实例化工厂和对象类时遇到错误。如果工厂不希望使用其他工厂尝试创建对象,则工厂应该抛出异常。请参阅DirObjectFactory.getObjectInstance()
      自从:
      1.3
      参见:
    • getStateToBind

      public static DirStateFactory.Result getStateToBind(Object obj, Name name, Context nameCtx, Hashtable<?,?> environment, Attributes attrs) throws NamingException
      在给定原始对象和其属性时,检索要绑定的对象的状态。

      此方法类似于NamingManager.getStateToBind,除了以下差异:

      • 它接受一个包含传递给DirContext.bind()方法的属性的Attributes参数。
      • 返回一个非空的DirStateFactory.Result实例,其中包含要绑定的对象以及要与绑定一起使用的属性。对象或属性可能为null。
      • 尝试的状态工厂必须每个实现StateFactoryDirStateFactory。如果它实现了DirStateFactory,则调用DirStateFactory.getStateToBind();否则,调用StateFactory.getStateToBind()
      实现DirContext接口的服务提供者应该使用此方法,而不是NamingManager.getStateToBind()

      有关如何确定要尝试的状态工厂列表的描述,请参阅NamingManager.getStateToBind()。

      此方法返回的对象由调用者拥有。实现不会随后修改它。它将包含一个新的同样由调用者拥有的Attributes对象,或者对原始attrs参数的引用。

      参数:
      obj - 要获取要绑定状态的非空对象。
      name - 相对于nameCtx的此对象的名称,如果未指定名称,则为null。
      nameCtx - 指定name参数的上下文,如果name相对于默认初始上下文,则为null。
      environment - 用于创建状态工厂和对象状态的可能为空环境。
      attrs - 要与对象绑定的可能为空的Attributes。
      返回:
      包含要绑定的对象和属性的非空DirStateFactory.Result。如果没有状态工厂返回非空答案,则结果将包含对象(obj)本身和原始属性。
      抛出:
      NamingException - 如果在使用工厂时遇到命名异常。如果工厂不希望使用其他工厂尝试创建对象,则工厂应该抛出异常。请参阅DirStateFactory.getStateToBind()
      自从:
      1.3
      参见: