Spec-Zone .ru
спецификации, руководства, описания, API
|
public interface DirStateFactory extends StateFactory
Платформа JNDI учитывает объектные реализации, которые будут загружены в динамически через object factories.
DirStateFactory расширяет StateFactory, позволяя экземпляр Attributes быть предоставленным и быть возвращенным методом getStateToBind(). реализации DirStateFactory предназначаются, чтобы использоваться поставщиками услуг DirContext. Когда вызывающая сторона связывает объект, используя DirContext.bind(), он мог бы также определить ряд атрибутов, которые будут связаны с объектом. Объект и атрибуты, которые будут связаны, передают к методу getStateToBind() фабрики. Если фабрика обрабатывает объект и атрибуты, это возвращает соответствующую пару объекта и атрибутов, которые будут связаны. Если фабрика не обрабатывает объект, она должна возвратить нуль.
Например, вызывающая сторона могла бы связать объект принтера с некоторыми связанными с принтером атрибутами.
Поставщик услуг LDAP для ctx использует DirStateFactory (косвенно через DirectoryManager.getStateToBind()) и дает этому printer и printerAttrs. Фабрика для каталога LDAP могла бы превратить printer в ряд атрибутов и слияния это с printerAttrs. Поставщик услуг тогда использует получающиеся атрибуты, чтобы создать запись LDAP и обновляет каталог.ctx.rebind("inky", printer, printerAttrs);
Так как DirStateFactory расширяет StateFactory, у него есть два метода getStateToBind(), где каждый отличается от другого параметром атрибутов. DirectoryManager.getStateToBind() будет только использовать форму, которая принимает параметр атрибутов, в то время как NamingManager.getStateToBind() будет только использовать форму, которая не принимает параметр атрибутов.
Любая форма метода getStateToBind() DirStateFactory может быть вызвана многократно, возможно используя различные параметры. Реализация ориентирована на многопотоковое исполнение.
Модификатор и Тип | Интерфейс и Описание |
---|---|
static class |
DirStateFactory. Результат
Пара объекта/атрибутов для того, чтобы возвратить результат DirStateFactory.getStateToBind ().
|
Модификатор и Тип | Метод и Описание |
---|---|
DirStateFactory. Результат |
getStateToBind(Object obj, Name name, Context nameCtx, Hashtable<?,?> environment, Attributes inAttrs)
Получает состояние объекта для того, чтобы обязать данный объект и атрибуты быть преобразованным.
|
getStateToBind
DirStateFactory.Result getStateToBind(Object obj, Name name, Context nameCtx, Hashtable<?,?> environment, Attributes inAttrs) throws NamingException
DirectoryManager.getStateToBind() последовательно загружается на фабриках состояния. Если фабрика реализует DirStateFactory, DirectoryManager вызывает этот метод; иначе, это вызывает StateFactory.getStateToBind(). Это делает это, пока фабрика не производит ненулевой ответ.
Когда исключение выдается фабрикой, исключение передается вызывающей стороне DirectoryManager.getStateToBind(). Поиск других фабрик, которые могут произвести ненулевой ответ, останавливается. Фабрика должна только выдать исключение, если это уверено, что это - единственная намеченная фабрика и что никакие другие фабрики нельзя попробовать. Если эта фабрика не может создать объект, используя предоставленные параметры, она должна возвратить нуль.
name
и nameCtx
параметры могут дополнительно использоваться, чтобы определить имя создаваемого объекта. См. описание "Имени и Параметров Контекста" в ObjectFactory.getObjectInstance()
для деталей. Если фабрика использует nameCtx
это должно синхронизировать свое использование против параллельного доступа, так как реализации контекста, как гарантируют, не будут ориентированы на многопотоковое исполнение.
name, inAttrs, и параметры environment принадлежат вызывающей стороне. Реализация не будет изменять эти объекты или сохранять ссылки на них, хотя она может сохранить ссылки на клонов или копии. Объект, возвращенный этим методом, принадлежит вызывающей стороне. Реализация не будет впоследствии изменять это. Это будет содержать или новый объект Attributes, который аналогично принадлежит вызывающей стороне, или ссылке на исходный параметр inAttrs.
obj
- Возможно нуль возражает, чье состояние должно быть получено.name
- Имя этого объекта относительно nameCtx
, или нуль, если никакое имя не определяется.nameCtx
- Контекстно-зависимое то, к который name
параметр определяется, или нуль если name
относительно начального контекста по умолчанию.environment
- Возможно нулевая среда, которая будет использоваться в создании состояния объекта.inAttrs
- Возможно неопределенные атрибуты, которые будут связаны с объектом. Фабрика не должна изменить inAttrs.NamingException
- Если эту фабрику, с которой встречаются исключение, пытаясь получить состояние объекта, и никакие другие фабрики, нужно попробовать.DirectoryManager.getStateToBind(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>, javax.naming.directory.Attributes)
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.