Spec-Zone .ru
спецификации, руководства, описания, API
След: Именование Java и Интерфейс Каталога
Урок: Именование и Операции Каталога
Добавьте, Замените Привязку Атрибутами
Домашняя страница > Именование Java и Интерфейс Каталога > Именование и Операции Каталога

Добавьте, Замените Привязку Атрибутами

Примеры именования, обсужденные, как можно использовать bind(), rebind(). Интерфейс DirContext содержит перегруженные версии этих методов, которые принимают атрибуты. Можно использовать эти методы DirContext, чтобы связать атрибуты с объектом в то время, когда привязка или подконтекст добавляются к пространству имен. Например, Вы могли бы создать объект Person и связать его с пространством имен и одновременно связать атрибуты о том объекте Person.

Добавление Привязки, у Которой Есть Атрибуты

DirContext.bind() используется, чтобы добавить привязку, у которой есть атрибуты к контексту. Это принимает как параметры имя объекта, объект быть связанным, и ряд атрибутов.

// Create the object to be bound
Fruit fruit = new Fruit("orange");

// Create attributes to be associated with the object
Attributes attrs = new BasicAttributes(true); // case-ignore
Attribute objclass = new BasicAttribute("objectclass");
objclass.add("top");
objclass.add("organizationalUnit");
attrs.put(objclass);

// Perform bind
ctx.bind("ou=favorite, ou=Fruits", fruit, attrs);

This example создает объект class Fruit и связывает это с именем "ou=favorite" в контекст под названием "ou=Fruits", относительно ctx. У этой привязки есть атрибут "objectclass". Если бы Вы впоследствии искали имя "ou=favorite, ou=Fruits" в ctx, то Вы получили бы объект fruit. Если бы Вы тогда получили атрибуты "ou=favorite, ou=Fruits", то Вы получили бы те атрибуты, с которыми создавался объект. Следующее является выводом этого примера.

# java Bind
orange
attribute: objectclass
value: top
value: organizationalUnit
value: javaObject
value: javaNamingReference
attribute: javaclassname
value: Fruit
attribute: javafactory
value: FruitFactory
attribute: javareferenceaddress
value: #0#fruit#orange
attribute: ou
value: favorite

Дополнительные атрибуты и показанные значения атрибута используются, чтобы хранить информацию об объекте (fruit). Эти дополнительные атрибуты обсуждаются более подробно в следе.

Если бы Вы должны были выполнить этот пример дважды, то вторая попытка перестала бы работать с NameAlreadyBoundException. Это - то, потому что имя "ou=favorite" уже связывается в контексте "ou=Fruits". Для второй попытки успешно выполниться, необходимо бы использовать rebind().

Замена Привязки, у Которой Есть Атрибуты

DirContext.rebind() используется, чтобы добавить или заменить привязку и ее атрибуты. Это принимает те же самые параметры как bind(). Однако, семантика rebind() требуют, чтобы, если имя будет уже связано, то это будет несвязанным и недавно данный объект и атрибуты были связаны.

// Create the object to be bound
Fruit fruit = new Fruit("lemon");

// Create attributes to be associated with the object
Attributes attrs = new BasicAttributes(true); // case-ignore
Attribute objclass = new BasicAttribute("objectclass");
objclass.add("top");
objclass.add("organizationalUnit");
attrs.put(objclass);

// Perform bind
ctx.rebind("ou=favorite, ou=Fruits", fruit, attrs);

Когда Вы работаете this example , это заменяет привязку что bind() пример создается.

# java Rebind
lemon
attribute: objectclass
value: top
value: organizationalUnit
value: javaObject
value: javaNamingReference
attribute: javaclassname
value: Fruit
attribute: javafactory
value: FruitFactory
attribute: javareferenceaddress
value: #0#fruit#lemon
attribute: ou
value: favorite

Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Измените Атрибуты
Следующая страница: Поиск