|
Spec-Zone .ru
спецификации, руководства, описания, API
|
Примеры именования, обсужденные, как можно использовать bind(), rebind(). Интерфейс DirContext содержит перегруженные версии этих методов, которые принимают атрибуты. Можно использовать эти методы DirContext, чтобы связать атрибуты с объектом в то время, когда привязка или подконтекст добавляются к пространству имен. Например, Вы могли бы создать объект Person и связать его с пространством имен и одновременно связать атрибуты о том объекте Person.
используется, чтобы добавить привязку, у которой есть атрибуты к контексту. Это принимает как параметры имя объекта, объект быть связанным, и ряд атрибутов.
// 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);
# 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().
используется, чтобы добавить или заменить привязку и ее атрибуты. Это принимает те же самые параметры как 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);
Когда Вы работаете
# 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