Класс RelationService
- Все реализуемые интерфейсы:
EventListener, MBeanRegistration, NotificationBroadcaster, NotificationEmitter, NotificationListener, RelationServiceMBean
public class RelationService extends NotificationBroadcasterSupport implements RelationServiceMBean, MBeanRegistration, NotificationListener
Она реализует интерфейс NotificationBroadcaster, расширяя NotificationBroadcasterSupport, чтобы отправлять уведомления при удалении отношения из неё.
Она реализует интерфейс NotificationListener, чтобы получать уведомления об отмене регистрации MBeans, на которые ссылаются роли отношений, а также MBeans отношений.
Она реализует интерфейс MBeanRegistration, чтобы получить своё имя ObjectName и сервер MBean.
- Начиная с:
- 1.5
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
RelationService |
Конструктор. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addRelation |
Добавляет в службу отношений MBean, созданный пользователем (и зарегистрированный им на сервере MBean), в качестве отношения. |
void |
addRelationType |
Добавляет указанный объект в качестве типа отношения. |
Integer |
checkRoleReading |
Проверяет, можно ли читать указанную роль в отношении заданного типа. |
Integer |
checkRoleWriting |
Проверяет, можно ли задавать указанную роль в отношении заданного типа. |
void |
createRelation |
Создаёт простое отношение (представленное объектом RelationSupport) заданного типа и добавляет его в службу отношений. |
void |
createRelationType |
Создаёт тип отношения (объект RelationTypeSupport) с заданными сведениями о ролях (предоставленными объектами RoleInfo) и добавляет его в службу отношений. |
Map |
findAssociatedMBeans |
Получает MBeans, связанные с указанным MBean в отношении. |
Map |
findReferencingRelations |
Получает отношения, в которых указан MBean упоминается. |
List |
findRelationsOfType |
Возвращает идентификаторы отношений заданного типа. |
List |
getAllRelationIds() |
Возвращает все идентификаторы отношений, обрабатываемых службой отношений. |
List |
getAllRelationTypeNames() |
Получает имена всех известных типов отношений. |
RoleResult |
getAllRoles |
Возвращает все роли, присутствующие в отношении. |
MBeanNotificationInfo[] |
getNotificationInfo() |
Возвращает объект NotificationInfo, содержащий имя Java-класса уведомления и типы отправляемых уведомлений. |
boolean |
getPurgeFlag() |
Возвращает флаг, указывающий, следует ли сразу выполнять «очистку» отношений (искать отношения, утратившие актуальность) при получении уведомления об отмене регистрации MBean, на который ссылается отношение, или же это следует делать только при явном вызове метода purgeRelations. |
Map |
getReferencedMBeans |
Получает MBeans, на которые ссылаются различные роли отношения. |
String |
getRelationTypeName |
Возвращает имя типа отношения, связанного с указанным отношением. |
List |
getRole |
Получает значение роли с указанным именем в указанном отношении. |
Integer |
getRoleCardinality |
Получает количество MBeans, на которые в данный момент ссылается указанная роль. |
RoleInfo |
getRoleInfo |
Получает сведения о роли с указанным именем для заданного типа отношения. |
List |
getRoleInfos |
Получает список сведений о ролях (объектов RoleInfo) для заданного типа отношения. |
RoleResult |
getRoles |
Получает значения ролей с указанными именами в заданном отношении. |
void |
handleNotification |
Вызывается при возникновении уведомления JMX. |
Boolean |
hasRelation |
Проверяет, существует ли в службе отношений отношение с указанным идентификатором. |
void |
isActive() |
Проверяет, активна ли служба отношений. |
String |
isRelation |
Возвращает идентификатор отношения, связанный с указанным ObjectName, если MBean был добавлен в службу отношений в качестве отношения. |
ObjectName |
isRelationMBean |
Если отношение представлено MBean (созданным пользователем и добавленным в службу отношений в качестве отношения), возвращает ObjectName этого MBean. |
void |
postDeregister() |
Позволяет MBean выполнить необходимые действия после отмены его регистрации на сервере MBean. |
void |
postRegister |
Позволяет MBean выполнить необходимые действия после его регистрации на сервере MBean или после сбоя регистрации. |
void |
preDeregister() |
Позволяет MBean выполнить необходимые действия перед отменой его регистрации сервером MBean. |
ObjectName |
preRegister |
Позволяет MBean выполнить необходимые действия перед его регистрацией на сервере MBean. |
void |
purgeRelations() |
Выполняет очистку отношений. |
void |
removeRelation |
Удаляет указанное отношение из службы отношений. |
void |
removeRelationType |
Удаляет указанный тип отношения из службы отношений. |
void |
sendRelationCreationNotification |
Отправляет уведомление (RelationNotification) о создании отношения. |
void |
sendRelationRemovalNotification |
Отправляет уведомление (RelationNotification) об удалении отношения. |
void |
sendRoleUpdateNotification |
Отправляет уведомление (RelationNotification) об обновлении роли в указанном отношении. |
void |
setPurgeFlag |
Устанавливает флаг, указывающий, следует ли сразу выполнять «очистку» отношений (искать отношения, утратившие актуальность) при получении уведомления об отмене регистрации MBean, на который ссылается отношение, или же это следует делать только при явном вызове метода purgeRelations. |
void |
setRole |
Задаёт указанную роль в указанном отношении. |
RoleResult |
setRoles |
Задаёт указанные роли в указанном отношении. |
void |
updateRoleMap |
Обрабатывает обновление карты ролей службы отношений при обновлении указанной роли в указанном отношении. |
Методы, объявленные в классе NotificationBroadcasterSupport
addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification | Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addNotificationListener |
Добавляет слушателя. |
protected void |
handleNotification |
Этот метод вызывается методом sendNotification для каждого слушателя, чтобы отправить ему уведомление. |
void |
removeNotificationListener |
Удаляет слушателя из этого MBean. |
void |
removeNotificationListener |
Удаляет слушателя из этого MBean. |
void |
sendNotification |
Отправляет уведомление. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Показывает, равен ли другой объект этому объекту. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии. Финализация объявлена устаревшей и подлежит удалению в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством вызова notify или interrupt. |
final void |
wait |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
Подробное описание конструкторов
RelationService
public RelationService(boolean immediatePurgeFlag)
- Параметры:
-
immediatePurgeFlag— флаг, указывающий, нужно ли немедленно выполнять «очистку» связей (искать связи, утратившие актуальность) при получении уведомления об отмене регистрации MBean, на который ссылается связь, или же это будет выполнено только при явном вызове метода purgeRelations.true означает немедленную очистку.
Подробное описание методов
isActive
public void isActive() throws RelationServiceNotRegisteredException
- Определено в:
-
isActiveв интерфейсеRelationServiceMBean - Вызывает исключение:
-
RelationServiceNotRegisteredException— если она не зарегистрирована
preRegister
public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception
MBeanRegistration- Определено в:
-
preRegisterв интерфейсеMBeanRegistration - Параметры:
-
server— сервер MBean, на котором будет зарегистрирован MBean. -
name— имя объекта MBean. Это имя равно null, если параметр имени в одном из методовcreateMBeanилиregisterMBeanинтерфейсаMBeanServerравен null. В этом случае данный метод должен вернуть ненулевое имя ObjectName для нового MBean. - Возвращает:
- Имя, под которым должен быть зарегистрирован MBean. Это значение не должно быть null. Если параметр
nameне равен null, обычно, но не обязательно, возвращается именно это значение. - Вызывает исключение:
-
Exception— это исключение будет перехвачено сервером MBean и повторно выброшено какMBeanRegistrationException.
postRegister
public void postRegister(Boolean registrationDone)
MBeanRegistrationЕсли реализация этого метода выбрасывает RuntimeException или Error, сервер MBean повторно выбросит их соответственно внутри RuntimeMBeanException или RuntimeErrorException. Однако выбрасывание исключения в postRegister не изменит состояние MBean: если MBean уже был зарегистрирован (registrationDone равно true), он останется зарегистрированным.
Это может сбить с толку код, вызывающий createMBean() или registerMBean(), поскольку такой код может предположить, что регистрация MBean не удалась, если возникло исключение. Поэтому рекомендуется, чтобы реализации postRegister по возможности не выбрасывали исключения Runtime или Errors.
- Определено в:
-
postRegisterв интерфейсеMBeanRegistration - Параметры:
-
registrationDone— указывает, был ли MBean успешно зарегистрирован на сервере MBean. Значение false означает, что этап регистрации завершился неудачно.
preDeregister
public void preDeregister() throws Exception
MBeanRegistration- Определено в:
-
preDeregisterв интерфейсеMBeanRegistration - Вызывает исключение:
-
Exception— это исключение будет перехвачено сервером MBean и повторно выброшено какMBeanRegistrationException.
postDeregister
public void postDeregister()
MBeanRegistrationЕсли реализация этого метода выбрасывает RuntimeException или Error, сервер MBean повторно выбросит их соответственно внутри RuntimeMBeanException или RuntimeErrorException. Однако выбрасывание исключения в postDeregister не изменит состояние MBean: отмена регистрации MBean уже успешно выполнена, и это состояние сохранится.
Это может сбить с толку код, вызывающий unregisterMBean(), поскольку он может предположить, что отмена регистрации MBean не удалась. Поэтому рекомендуется, чтобы реализации postDeregister по возможности не выбрасывали исключения Runtime или Errors.
- Определено в:
-
postDeregisterв интерфейсеMBeanRegistration
getPurgeFlag
public boolean getPurgeFlag()
true означает немедленную очистку.
- Определено в:
-
getPurgeFlagв интерфейсеRelationServiceMBean - Возвращает:
- true, если очистка выполняется автоматически.
- См. также:
setPurgeFlag
public void setPurgeFlag(boolean purgeFlag)
true означает немедленную очистку.
- Определено в:
-
setPurgeFlagв интерфейсеRelationServiceMBean - Параметры:
-
purgeFlag— флаг - См. также:
createRelationType
public void createRelationType(String relationTypeName, RoleInfo[] roleInfoArray) throws IllegalArgumentException, InvalidRelationTypeException
- Определено в:
-
createRelationTypeв интерфейсеRelationServiceMBean - Параметры:
-
relationTypeName— имя типа связи -
roleInfoArray— массив сведений о ролях - Вызывает исключение:
-
IllegalArgumentException— если параметр равен null -
InvalidRelationTypeException— если:— тип связи с таким именем уже существует
— одно и то же имя использовано для двух разных сведений о ролях
— сведения о ролях не предоставлены
— одно из сведений о ролях равно null
addRelationType
public void addRelationType(RelationType relationTypeObj) throws IllegalArgumentException, InvalidRelationTypeException
- Определено в:
-
addRelationTypeв интерфейсеRelationServiceMBean - Параметры:
-
relationTypeObj— объект типа связи (реализующий интерфейс RelationType) - Вызывает исключение:
-
IllegalArgumentException— если параметр равен null илиrelationTypeObj.getRelationTypeName()возвращает null. -
InvalidRelationTypeException— если:— одно и то же имя использовано для двух разных ролей
— сведения о ролях не предоставлены
— одно из сведений о ролях равно null
— тип связи с таким именем уже существует
getAllRelationTypeNames
public List<String> getAllRelationTypeNames()
- Определено в:
-
getAllRelationTypeNamesв интерфейсеRelationServiceMBean - Возвращает:
- ArrayList с именами типов связей (String)
getRoleInfos
public List<RoleInfo> getRoleInfos(String relationTypeName) throws IllegalArgumentException, RelationTypeNotFoundException
- Определено в:
-
getRoleInfosв интерфейсеRelationServiceMBean - Параметры:
-
relationTypeName— имя типа связи - Возвращает:
- ArrayList объектов RoleInfo.
- Вызывает исключение:
-
IllegalArgumentException— если параметр равен null -
RelationTypeNotFoundException— если типа связи с таким именем не существует.
getRoleInfo
public RoleInfo getRoleInfo(String relationTypeName, String roleInfoName) throws IllegalArgumentException, RelationTypeNotFoundException, RoleInfoNotFoundException
- Определено в:
-
getRoleInfoв интерфейсеRelationServiceMBean - Параметры:
-
relationTypeName— имя типа связи -
roleInfoName— имя роли - Возвращает:
- Объект RoleInfo.
- Вызывает исключение:
-
IllegalArgumentException— если параметр равен null -
RelationTypeNotFoundException— если тип связи неизвестен службе связей -
RoleInfoNotFoundException— если роль не входит в состав типа связи.
removeRelationType
public void removeRelationType(String relationTypeName) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationTypeNotFoundException
Объекты связей этого типа будут удалены из службы связей.
- Определено в:
-
removeRelationTypeв интерфейсеRelationServiceMBean - Параметры:
-
relationTypeName— имя удаляемого типа связи - Вызывает исключение:
-
RelationServiceNotRegisteredException— если служба связей не зарегистрирована на сервере MBean -
IllegalArgumentException— если параметр равен null -
RelationTypeNotFoundException— если типа связи с таким именем не существует
createRelation
public void createRelation(String relationId, String relationTypeName, RoleList roleList) throws RelationServiceNotRegisteredException, IllegalArgumentException, RoleNotFoundException, InvalidRelationIdException, RelationTypeNotFoundException, InvalidRoleValueException
Роли инициализируются в соответствии со списком ролей, переданным в параметре. Роли, не инициализированные таким образом, получают пустой ArrayList объектов ObjectName.
Отправляется уведомление RelationNotification с типом RELATION_BASIC_CREATION.
- Определено в:
-
createRelationв интерфейсеRelationServiceMBean - Параметры:
-
relationId— идентификатор связи, уникально идентифицирующий связь в службе связей -
relationTypeName— имя типа связи (тип должен быть создан в службе связей) -
roleList— список ролей для инициализации ролей связи (может быть null). - Вызывает исключение:
-
RelationServiceNotRegisteredException— если служба связей не зарегистрирована на сервере MBean -
IllegalArgumentException— если параметр равен null, за исключением списка ролей, который может быть null, если роли не нужно инициализировать -
RoleNotFoundException— если для роли задано значение, но такая роль отсутствует в типе связи -
InvalidRelationIdException— если идентификатор связи уже используется -
RelationTypeNotFoundException— если тип связи неизвестен службе связей -
InvalidRoleValueException— если:— одно и то же имя использовано для двух разных ролей
— количество ссылающихся MBean в заданном значении меньше ожидаемой минимальной степени
— количество ссылающихся MBean в заданном значении превышает ожидаемую максимальную степень
— один из ссылающихся MBean в значении не является объектом класса MBean, ожидаемого для этой роли
— MBean, указанный для этой роли, не существует
addRelation
public void addRelation(ObjectName relationObjectName) throws IllegalArgumentException, RelationServiceNotRegisteredException, NoSuchMethodException, InvalidRelationIdException, InstanceNotFoundException, InvalidRelationServiceException, RelationTypeNotFoundException, RoleNotFoundException, InvalidRoleValueException
Чтобы MBean можно было добавить в качестве связи, он должен соответствовать следующим требованиям:
— реализовывать интерфейс Relation
— иметь в качестве ObjectName службы RelationService ObjectName текущей службы связей
— иметь уникальный и еще не использованный в текущей службе связей идентификатор связи
— иметь тип связи, созданный в службе связей
— иметь роли, соответствующие сведениям о ролях, предоставленным для типа связи.
- Определено в:
-
addRelationв интерфейсеRelationServiceMBean - Параметры:
-
relationObjectName— ObjectName добавляемого MBean-связи. - Вызывает исключение:
-
IllegalArgumentException— если параметр равен null -
RelationServiceNotRegisteredException— если служба связей не зарегистрирована на сервере MBean -
NoSuchMethodException— если MBean не реализует интерфейс Relation -
InvalidRelationIdException— если:— в MBean отсутствует идентификатор связи
— идентификатор связи уже используется в службе связей
-
InstanceNotFoundException— если MBean с заданным ObjectName не зарегистрирован -
InvalidRelationServiceException— если:— в MBean не указано имя службы связей
— имя службы связей в MBean не совпадает с именем текущей службы связей
-
RelationTypeNotFoundException— если:— в MBean не указано имя типа связи
— имя типа связи в MBean не соответствует типу связи, созданному в службе связей
-
InvalidRoleValueException— если:— количество ссылающихся MBean в роли меньше ожидаемой минимальной степени
— количество ссылающихся MBean в роли превышает ожидаемую максимальную степень
— один из ссылающихся MBean в значении не является объектом класса MBean, ожидаемого для этой роли
— MBean, указанный для роли, не существует
-
RoleNotFoundException— если для роли задано значение, но такая роль отсутствует в типе связи
isRelationMBean
public ObjectName isRelationMBean(String relationId) throws IllegalArgumentException, RelationNotFoundException
- Определено в:
-
isRelationMBeanв интерфейсеRelationServiceMBean - Параметры:
-
relationId— идентификатор связи - Возвращает:
- ObjectName соответствующего MBean-связи или null, если связь не является MBean.
- Вызывает исключение:
-
IllegalArgumentException— если параметр равен null -
RelationNotFoundException— если связь с таким идентификатором отсутствует
isRelation
public String isRelation(ObjectName objectName) throws IllegalArgumentException
- Определено в:
-
isRelationв интерфейсеRelationServiceMBean - Параметры:
-
objectName— ObjectName предполагаемой связи - Возвращает:
- идентификатор связи (String) или null (если ObjectName не является связью, обрабатываемой службой связей)
- Вызывает исключение:
-
IllegalArgumentException— если параметр равен null
hasRelation
public Boolean hasRelation(String relationId) throws IllegalArgumentException
- Определено в:
-
hasRelationв интерфейсеRelationServiceMBean - Параметры:
-
relationId— идентификатор связи - Возвращает:
- boolean: true, если связь существует, иначе false
- Вызывает исключение:
-
IllegalArgumentException— если параметр равен null
getAllRelationIds
public List<String> getAllRelationIds()
- Определено в:
-
getAllRelationIdsв интерфейсеRelationServiceMBean - Возвращает:
- ArrayList объектов String
checkRoleReading
public Integer checkRoleReading(String roleName, String relationTypeName) throws IllegalArgumentException, RelationTypeNotFoundException
- Определено в:
-
checkRoleReadingв интерфейсеRelationServiceMBean - Параметры:
-
roleName— имя проверяемой роли -
relationTypeName— имя типа связи - Возвращает:
- Integer, содержащий целое число, соответствующее возможной проблеме, представленной константой в RoleUnresolved:
— 0, если роль можно прочитать
— целое число, соответствующее RoleStatus.NO_ROLE_WITH_NAME
— целое число, соответствующее RoleStatus.ROLE_NOT_READABLE
- Вызывает исключение:
-
IllegalArgumentException— если параметр равен null -
RelationTypeNotFoundException— если тип связи неизвестен службе связей
checkRoleWriting
public Integer checkRoleWriting(Role role, String relationTypeName, Boolean initFlag) throws IllegalArgumentException, RelationTypeNotFoundException
- Определено в:
-
checkRoleWritingв интерфейсеRelationServiceMBean - Параметры:
-
role— проверяемая роль -
relationTypeName— имя типа связи -
initFlag— флаг, указывающий, что проверка выполняется при инициализации роли; проверять доступ на запись не требуется. - Возвращает:
- Integer, содержащий целое число, соответствующее возможной проблеме, представленной константой в RoleUnresolved:
— 0, если роль можно задать
— целое число, соответствующее RoleStatus.NO_ROLE_WITH_NAME
— целое число, соответствующее RoleStatus.ROLE_NOT_WRITABLE
— целое число, соответствующее RoleStatus.LESS_THAN_MIN_ROLE_DEGREE
— целое число, соответствующее RoleStatus.MORE_THAN_MAX_ROLE_DEGREE
— целое число, соответствующее RoleStatus.REF_MBEAN_OF_INCORRECT_CLASS
— целое число, соответствующее RoleStatus.REF_MBEAN_NOT_REGISTERED
- Вызывает исключение:
-
IllegalArgumentException— если параметр равен null -
RelationTypeNotFoundException— если тип связи неизвестен
sendRelationCreationNotification
public void sendRelationCreationNotification(String relationId) throws IllegalArgumentException, RelationNotFoundException
— RelationNotification.RELATION_BASIC_CREATION, если связь является внутренним объектом службы связей
— RelationNotification.RELATION_MBEAN_CREATION, если связь представляет собой MBean, добавленный в качестве связи.
Объектом-источником является сама служба связей.
Вызывается в методах createRelation() и addRelation() службы связей.
- Определено в:
-
sendRelationCreationNotificationв интерфейсеRelationServiceMBean - Параметры:
-
relationId— идентификатор обновленной связи - Вызывает исключение:
-
IllegalArgumentException— если параметр равен null -
RelationNotFoundException— если связи с заданным идентификатором не существует
sendRoleUpdateNotification
public void sendRoleUpdateNotification(String relationId, Role newRole, List<ObjectName> oldValue) throws IllegalArgumentException, RelationNotFoundException
— RelationNotification.RELATION_BASIC_UPDATE, если связь является внутренним объектом службы связей
— RelationNotification.RELATION_MBEAN_UPDATE, если связь представляет собой MBean, добавленный в качестве связи.
Объектом-источником является сама служба связей.
Вызывается в методах setRole() (для заданной роли) и setRoles() (для каждой роли) MBean-связи (реализация предоставлена классом RelationSupport).
Также вызывается в методах setRole() (для заданной роли) и setRoles() (для каждой роли) службы связей.
- Определено в:
-
sendRoleUpdateNotificationв интерфейсеRelationServiceMBean - Параметры:
-
relationId— идентификатор обновленной связи -
newRole— новая роль (имя и новое значение) -
oldValue— старое значение роли (List объектов ObjectName) - Вызывает исключение:
-
IllegalArgumentException— если параметр равен null -
RelationNotFoundException— если связи с заданным идентификатором не существует
sendRelationRemovalNotification
public void sendRelationRemovalNotification(String relationId, List<ObjectName> unregMBeanList) throws IllegalArgumentException, RelationNotFoundException
— RelationNotification.RELATION_BASIC_REMOVAL, если связь является внутренним объектом службы связей
— RelationNotification.RELATION_MBEAN_REMOVAL, если связь представляет собой MBean, добавленный в качестве связи.
Объектом-источником является сама служба связей.
Вызывается в методе removeRelation() службы связей.
- Определено в:
-
sendRelationRemovalNotificationв интерфейсеRelationServiceMBean - Параметры:
-
relationId— идентификатор обновленной связи -
unregMBeanList— List объектов ObjectName для MBean, регистрацию которых предполагается отменить из-за удаления связи (может быть null) - Вызывает исключение:
-
IllegalArgumentException— если параметр равен null -
RelationNotFoundException— если связи с заданным идентификатором не существует
updateRoleMap
public void updateRoleMap(String relationId, Role newRole, List<ObjectName> oldValue) throws IllegalArgumentException, RelationServiceNotRegisteredException, RelationNotFoundException
Вызывается в методах setRole() (для заданной роли) и setRoles() (для каждой роли) MBean-связи (реализация предоставлена классом RelationSupport).
Также вызывается в методах setRole() (для заданной роли) и setRoles() (для каждой роли) службы связей.
Чтобы служба связей могла поддерживать согласованность (в случае отмены регистрации MBean) и выполнять запросы, этот метод необходимо вызывать при обновлении роли.
- Определено в:
-
updateRoleMapв интерфейсеRelationServiceMBean - Параметры:
-
relationId— идентификатор обновленной связи -
newRole— новая роль (имя и новое значение) -
oldValue— старое значение роли (List объектов ObjectName) - Вызывает исключение:
-
IllegalArgumentException— если параметр равен null -
RelationServiceNotRegisteredException— если служба связей не зарегистрирована на сервере MBean -
RelationNotFoundException— если связи с заданным идентификатором не существует.
removeRelation
public void removeRelation(String relationId) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException
Отправляется уведомление RelationNotification со следующим типом:
— RelationNotification.RELATION_BASIC_REMOVAL, если связь существовала только внутри службы связей
— RelationNotification.RELATION_MBEAN_REMOVAL, если связь зарегистрирована как MBean.
Для MBean, на которые ссылается такая связь, никаких действий выполняться не будет.
- Определено в:
-
removeRelationв интерфейсеRelationServiceMBean - Параметры:
-
relationId— идентификатор удаляемой связи - Вызывает исключение:
-
RelationServiceNotRegisteredException— если служба связей не зарегистрирована на сервере MBean -
IllegalArgumentException— если параметр равен null -
RelationNotFoundException— если связи с заданным идентификатором не существует
purgeRelations
public void purgeRelations() throws RelationServiceNotRegisteredException
В зависимости от значения purgeFlag этот метод либо вызывается автоматически при получении уведомления об отмене регистрации MBean, на который ссылается связь (если флаг установлен в true), либо не вызывается (если флаг установлен в false).
В последнем случае пользователь должен вызвать его самостоятельно, чтобы сохранить согласованность связей. Следует учитывать, что если регистрация MBean отменена, а очистка не выполнена немедленно, то повторное использование ObjectName и назначение его другому MBean, на который ссылается связь, может привести к проблемам при ручном вызове метода purgeRelations(): ObjectName будет считаться соответствующим MBean, регистрация которого отменена, а новый MBean не будет обнаружен.
Поведение зависит от кратности роли, в которой указан MBean с отмененной регистрацией:
— если удаление одной ссылки на MBean в роли уменьшает количество ссылок ниже минимальной степени, связь необходимо удалить.
— если после удаления ссылки на MBean оставшееся количество ссылок по-прежнему находится в диапазоне кратности, связь сохраняется и обновляется вызовом ее обратного вызова handleMBeanUnregistration().
- Определено в:
-
purgeRelationsв интерфейсеRelationServiceMBean - Вызывает исключение:
-
RelationServiceNotRegisteredException— если служба связей не зарегистрирована на сервере MBean.
findReferencingRelations
public Map<String, List<String>> findReferencingRelations(ObjectName mbeanName, String relationTypeName, String roleName) throws IllegalArgumentException
Это соответствует операциям CIM «References» и «ReferenceNames».
- Указано в:
-
findReferencingRelationsв интерфейсеRelationServiceMBean - Параметры:
-
mbeanName- ObjectName объекта MBean -
relationTypeName- может быть null; если указано, при поиске будут рассматриваться только отношения этого типа. В противном случае рассматриваются все типы отношений. -
roleName- может быть null; если указано, будут возвращены только отношения, в которых MBean является объектом ссылки в этой роли. В противном случае рассматриваются все роли. - Возвращает:
- HashMap, в котором ключами являются идентификаторы отношений, где MBean является объектом ссылки, а значением для каждого ключа — ArrayList имён ролей (поскольку один MBean может быть объектом ссылки в нескольких ролях одного отношения).
- Вызывает исключения:
-
IllegalArgumentException- если параметр равен null
findAssociatedMBeans
public Map<ObjectName, List<String>> findAssociatedMBeans(ObjectName mbeanName, String relationTypeName, String roleName) throws IllegalArgumentException
Это соответствует операциям CIM Associators и AssociatorNames.
- Указано в:
-
findAssociatedMBeansв интерфейсеRelationServiceMBean - Параметры:
-
mbeanName- ObjectName объекта MBean -
relationTypeName- может быть null; если указано, при поиске будут рассматриваться только отношения этого типа. В противном случае рассматриваются все типы отношений. -
roleName- может быть null; если указано, будут рассматриваться только отношения, в которых MBean является объектом ссылки в этой роли. В противном случае рассматриваются все роли. - Возвращает:
- HashMap, в котором ключами являются ObjectName объектов MBean, связанных с указанным MBean, а значением для каждого ключа — ArrayList идентификаторов отношений, в которых MBean, соответствующий ключу, связан с указанным MBean (поскольку они могут быть связаны в нескольких разных отношениях).
- Вызывает исключения:
-
IllegalArgumentException- если параметр равен null
findRelationsOfType
public List<String> findRelationsOfType(String relationTypeName) throws IllegalArgumentException, RelationTypeNotFoundException
- Указано в:
-
findRelationsOfTypeв интерфейсеRelationServiceMBean - Параметры:
-
relationTypeName- имя типа отношения - Возвращает:
- ArrayList идентификаторов отношений.
- Вызывает исключения:
-
IllegalArgumentException- если параметр равен null -
RelationTypeNotFoundException- если типа отношения с таким именем не существует.
getRole
public List<ObjectName> getRole(String relationId, String roleName) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException, RoleNotFoundException
- Указано в:
-
getRoleв интерфейсеRelationServiceMBean - Параметры:
-
relationId- идентификатор отношения -
roleName- имя роли - Возвращает:
- ArrayList объектов ObjectName, представляющий значение роли
- Вызывает исключения:
-
RelationServiceNotRegisteredException- если служба отношений не зарегистрирована -
IllegalArgumentException- если параметр равен null -
RelationNotFoundException- если отношения с указанным идентификатором не существует -
RoleNotFoundException- если:- роли с указанным именем не существует
или
- роль недоступна для чтения.
- См. также:
getRoles
public RoleResult getRoles(String relationId, String[] roleNameArray) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException
- Указано в:
-
getRolesв интерфейсеRelationServiceMBean - Параметры:
-
relationId- идентификатор отношения -
roleNameArray- массив имён ролей, значения которых требуется получить - Возвращает:
- объект RoleResult, содержащий RoleList (для успешно полученных ролей) и RoleUnresolvedList (для ролей, значения которых получить не удалось).
- Вызывает исключения:
-
RelationServiceNotRegisteredException- если служба отношений не зарегистрирована на сервере MBean -
IllegalArgumentException- если параметр равен null -
RelationNotFoundException- если отношения с указанным идентификатором не существует - См. также:
getAllRoles
public RoleResult getAllRoles(String relationId) throws IllegalArgumentException, RelationNotFoundException, RelationServiceNotRegisteredException
- Указано в:
-
getAllRolesв интерфейсеRelationServiceMBean - Параметры:
-
relationId- идентификатор отношения - Возвращает:
- объект RoleResult, содержащий RoleList (для успешно полученных ролей) и RoleUnresolvedList (для ролей, недоступных для чтения).
- Вызывает исключения:
-
IllegalArgumentException- если параметр равен null -
RelationNotFoundException- если отношения с указанным идентификатором не существует -
RelationServiceNotRegisteredException- если служба отношений не зарегистрирована на сервере MBean
getRoleCardinality
public Integer getRoleCardinality(String relationId, String roleName) throws IllegalArgumentException, RelationNotFoundException, RoleNotFoundException
- Указано в:
-
getRoleCardinalityв интерфейсеRelationServiceMBean - Параметры:
-
relationId- идентификатор отношения -
roleName- имя роли - Возвращает:
- количество MBeans, на которые в данный момент ссылается эта роль
- Вызывает исключения:
-
IllegalArgumentException- если параметр равен null -
RelationNotFoundException- если отношения с указанным идентификатором не существует -
RoleNotFoundException- если роли с указанным именем не существует
setRole
public void setRole(String relationId, Role role) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException, RoleNotFoundException, InvalidRoleValueException
Роль будет проверена в соответствии с соответствующим определением роли, заданным в типе отношения.
Служба отношений будет отслеживать изменения, чтобы поддерживать согласованность отношений, обрабатывая отмену регистрации объектов MBean, на которые имеются ссылки.
- Указано в:
-
setRoleв интерфейсеRelationServiceMBean - Параметры:
-
relationId- идентификатор отношения -
role- задаваемая роль (имя и новое значение) - Вызывает исключения:
-
RelationServiceNotRegisteredException- если служба отношений не зарегистрирована на сервере MBean -
IllegalArgumentException- если параметр равен null -
RelationNotFoundException- если отношения с указанным идентификатором не существует -
RoleNotFoundException- если роль не существует или недоступна для записи -
InvalidRoleValueException- если заданное для роли значение недопустимо:- количество MBeans, на которые ссылается заданное значение, меньше ожидаемой минимальной степени
или
- количество MBeans, на которые ссылается заданное значение, превышает ожидаемую максимальную степень
или
- один из указанных в значении MBeans не является объектом ожидаемого для этой роли класса MBean
или
- указанный для этой роли MBean не существует
- См. также:
setRoles
public RoleResult setRoles(String relationId, RoleList roleList) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException
Роли будут проверены в соответствии с соответствующими определениями ролей, заданными в типе отношения.
Служба отношений отслеживает изменения, чтобы поддерживать согласованность отношений, обрабатывая отмену регистрации объектов MBean, на которые имеются ссылки.
- Указано в:
-
setRolesв интерфейсеRelationServiceMBean - Параметры:
-
relationId- идентификатор отношения -
roleList- список задаваемых ролей - Возвращает:
- объект RoleResult, содержащий RoleList (для успешно заданных ролей) и RoleUnresolvedList (для ролей, которые задать не удалось).
- Вызывает исключения:
-
RelationServiceNotRegisteredException- если служба отношений не зарегистрирована на сервере MBean -
IllegalArgumentException- если параметр равен null -
RelationNotFoundException- если отношения с указанным идентификатором не существует - См. также:
getReferencedMBeans
public Map<ObjectName, List<String>> getReferencedMBeans(String relationId) throws IllegalArgumentException, RelationNotFoundException
- Указано в:
-
getReferencedMBeansв интерфейсеRelationServiceMBean - Параметры:
-
relationId- идентификатор отношения - Возвращает:
- HashMap, содержащий соответствия:
ObjectName -> ArrayList строк (имена ролей)
- Вызывает исключения:
-
IllegalArgumentException- если параметр равен null -
RelationNotFoundException- если отношения с указанным идентификатором не существует
getRelationTypeName
public String getRelationTypeName(String relationId) throws IllegalArgumentException, RelationNotFoundException
- Указано в:
-
getRelationTypeNameв интерфейсеRelationServiceMBean - Параметры:
-
relationId- идентификатор отношения - Возвращает:
- имя связанного типа отношения.
- Вызывает исключения:
-
IllegalArgumentException- если параметр равен null -
RelationNotFoundException- если отношения с указанным идентификатором не существует
handleNotification
public void handleNotification(Notification notif, Object handback)
- Указано в:
-
handleNotificationв интерфейсеNotificationListener - Параметры:
-
notif- уведомление. -
handback- непрозрачный объект, который помогает слушателю связать сведения об источнике MBean (может быть null).
getNotificationInfo
public MBeanNotificationInfo[] getNotificationInfo()
- Указано в:
-
getNotificationInfoв интерфейсеNotificationBroadcaster - Возвращает:
- массив возможных уведомлений.
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.