Класс RelationSupport
- java.lang.Object
-
- javax.management.relation.RelationSupport
- Все реализованные интерфейсы:
-
MBeanRegistration,Relation,RelationSupportMBean
public class RelationSupport extends Object implements RelationSupportMBean, MBeanRegistration
Объект RelationSupport используется внутри сервиса отношений для представления простых отношений (только роли, без свойств или методов), с неограниченным числом ролей любого типа отношения. Как внутреннее представление, он не предоставляется пользователю.
Класс RelationSupport соответствует шаблонам проектирования стандартного MBean. Таким образом, пользователь может сам создать объект RelationSupport как MBean (так как он следует шаблонам проектирования MBean), зарегистрировать его в сервере MBean и затем добавить в сервис отношений.
Пользователь также может, создавая свой собственный класс MBean отношений, наследоваться от RelationSupport, чтобы получить реализации необходимых интерфейсов (см. ниже).
Также возможно иметь в классе пользовательского MBean отношений член, являющийся объектом RelationSupport, и реализовать необходимые интерфейсы, делегируя все этому члену.
RelationSupport реализует интерфейс Relation (для обработки сервисом отношений).
Он также реализует интерфейс MBeanRegistration, чтобы иметь возможность получить сервер MBean, где он зарегистрирован (если зарегистрирован как MBean), для доступа к его сервису отношений.
- С:
- 1.5
Конструкторы
| Конструктор | Описание |
|---|---|
RelationSupport(String relationId,
ObjectName relationServiceName,
String relationTypeName,
RoleList list) |
Создает объект |
RelationSupport(String relationId,
ObjectName relationServiceName,
MBeanServer relationServiceMBeanServer,
String relationTypeName,
RoleList list) |
Создает объект |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
RoleResult |
getAllRoles() |
Возвращает все роли, присутствующие в отношении. |
Map<ObjectName,List<String>> |
getReferencedMBeans() |
Получает MBean, указанные в различных ролях отношения. |
String |
getRelationId() |
Возвращает идентификатор отношения (используется для уникальной идентификации отношения внутри сервиса отношений). |
ObjectName |
getRelationServiceName() |
Возвращает ObjectName сервиса отношений, обрабатывающего отношение. |
String |
getRelationTypeName() |
Возвращает имя связанного типа отношения. |
List<ObjectName> |
getRole(String roleName) |
Получает значение роли для данного имени роли. |
Integer |
getRoleCardinality(String roleName) |
Возвращает количество MBean, в настоящее время указанных в данной роли. |
RoleResult |
getRoles(String[] roleNameArray) |
Получает значения ролей с заданными именами. |
void |
handleMBeanUnregistration(ObjectName objectName,
String roleName) |
Обработчик, используемый сервисом отношений, когда MBean, указанный в роли, снимается с регистрации. |
Boolean |
isInRelationService() |
Возвращает внутренний флаг, указывающий, обрабатывается ли объект сервисом отношений. |
RoleList |
retrieveAllRoles() |
Возвращает все роли в отношении без проверки режима чтения. |
void |
setRole(Role role) |
Устанавливает заданную роль. |
RoleResult |
setRoles(RoleList list) |
Устанавливает заданные роли. |
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Методы, объявленные в интерфейсе javax.management.MBeanRegistration
postDeregister, postRegister, preDeregister, preRegister
Методы, объявленные в интерфейсе javax.management.relation.RelationSupportMBean
setRelationServiceManagementFlag
Подробное описание конструкторов
RelationSupport
public RelationSupport(String relationId,
ObjectName relationServiceName,
String relationTypeName,
RoleList list)
throws InvalidRoleValueException,
IllegalArgumentException
Создает объект RelationSupport.
Этот конструктор нужно использовать, когда объект RelationSupport будет зарегистрирован как MBean пользователем или при создании пользовательского MBean отношения, чья класс наследуется от RelationSupport.
Ничего не делается на уровне сервиса отношений, т.е. объект RelationSupport не добавляется в RelationService и не проверяется правильность предоставленных значений. Объект всегда создается, ЗА ИСКЛЮЧЕНИЕМ, если:
- любой из необходимых параметров null.
- одно и то же имя используется для двух ролей.
Чтобы быть обработаным как отношение, объект RelationSupport должен быть добавлен в сервис отношений с помощью метода addRelation() сервиса отношений.
- Параметры:
-
relationId- идентификатор отношения для идентификации отношения в сервисе отношений.Ожидается, что он будет уникальным в данном сервисе отношений.
-
relationServiceName- ObjectName сервиса отношений, где будет зарегистрировано отношение.Этот параметр необходим, так как именно сервис отношений осведомлен об определении типа отношения данного отношения, поэтому сможет проверять операции обновления (set).
-
relationTypeName- Название типа отношения.Ожидается, что он был создан в данном сервисе отношений.
-
list- список ролей (объектов Role) для инициализации отношения. Может бытьnull.Ожидается соответствие информации об отношении в ассоциированном типе отношения.
- Исключения:
-
InvalidRoleValueException- если одно и то же имя используется для двух ролей. -
IllegalArgumentException- если любой из необходимых параметров (идентификатор отношения, ObjectName сервиса отношений или имя типа отношения)null.
RelationSupport
public RelationSupport(String relationId,
ObjectName relationServiceName,
MBeanServer relationServiceMBeanServer,
String relationTypeName,
RoleList list)
throws InvalidRoleValueException,
IllegalArgumentException
Создает объект RelationSupport.
Этот конструктор нужно использовать, когда пользовательский MBean отношения реализует интерфейсы, ожидаемые от отношения, делегируя их объекту RelationSupport.
Этот объект должен знать ожидаемый сервис отношений, который будет обрабатывать отношение. Поэтому он должен знать сервер MBean, где зарегистрирован сервис отношений.
В соответствии с ограничением, MBean отношения должен быть зарегистрирован в том же сервере MBean, что и ожидаемый сервис отношений. Поэтому пользовательский MBean отношения должен быть создан и зарегистрирован, а затем обернутый объект RelationSupport может быть создан в определенном сервере MBean.
Ничего не делается на уровне сервиса отношений, т.е. объект RelationSupport не добавляется в RelationService и не проверяется правильность предоставленных значений. Объект всегда создается, ЗА ИСКЛЮЧЕНИЕМ, если:
- любой из необходимых параметров null.
- одно и то же имя используется для двух ролей.
Чтобы быть обработаным как отношение, объект RelationSupport должен быть добавлен в сервис отношений с помощью метода addRelation() сервиса отношений.
- Параметры:
-
relationId- идентификатор отношения для идентификации отношения в сервисе отношений.Ожидается, что он будет уникальным в данном сервисе отношений.
-
relationServiceName- ObjectName сервиса отношений, где будет зарегистрировано отношение.Этот параметр необходим, так как именно сервис отношений осведомлен об определении типа отношения данного отношения, поэтому сможет проверять операции обновления (set).
-
relationServiceMBeanServer- Сервер MBean, где зарегистрирован или будет зарегистрирован обертывающий MBean.Ожидается, что это сервер MBean, где зарегистрирован или будет зарегистрирован сервис отношений.
-
relationTypeName- Название типа отношения.Ожидается, что он был создан в данном сервисе отношений.
-
list- список ролей (объектов Role) для инициализации отношения. Может бытьnull.Ожидается соответствие информации об отношении в ассоциированном типе отношения.
- Исключения:
-
InvalidRoleValueException- если одно и то же имя используется для двух ролей. -
IllegalArgumentException- если любой из необходимых параметров (идентификатор отношения, ObjectName сервиса отношений, сервер MBean сервиса отношений или имя типа отношения)null.
Методы
getRole
public List<ObjectName> getRole(String roleName)
throws IllegalArgumentException,
RoleNotFoundException,
RelationServiceNotRegisteredException Возвращает значение роли для заданного имени роли.
Проверяет, существует ли роль и доступна ли она в соответствии с типом отношения.
- Определено в:
-
getRoleв интерфейсеRelation - Параметры:
-
roleName- имя роли - Возвращает:
- список объектов ObjectName, являющихся значением роли
- Использует исключения:
-
IllegalArgumentException- если имя роли равно null -
RoleNotFoundException- если:- нет роли с заданным именем
- роль недоступна для чтения.
-
RelationServiceNotRegisteredException- если служба отношений не зарегистрирована в сервере MBean - См. также:
setRole(javax.management.relation.Role)
getRoles
public RoleResult getRoles(String[] roleNameArray)
throws IllegalArgumentException,
RelationServiceNotRegisteredException Возвращает значения ролей с заданными именами.
Проверяет для каждой роли, существует ли она и доступна ли для чтения в соответствии с типом отношения.
- Определено в:
-
getRolesв интерфейсеRelation - Параметры:
-
roleNameArray- массив имен ролей, которые нужно получить - Возвращает:
- объект RoleResult, содержащий список ролей (для ролей, успешно полученных) и список неразрешенных ролей (для ролей, не полученных).
- Использует исключения:
-
IllegalArgumentException- если имя роли равно null -
RelationServiceNotRegisteredException- если служба отношений не зарегистрирована в сервере MBean - См. также:
setRoles(javax.management.relation.RoleList)
getAllRoles
public RoleResult getAllRoles()
throws RelationServiceNotRegisteredException Возвращает все роли, присутствующие в отношении.
- Определено в:
-
getAllRolesв интерфейсеRelation - Возвращает:
- объект RoleResult, содержащий список ролей (для ролей, успешно полученных) и список неразрешенных ролей (для недоступных для чтения ролей).
- Использует исключения:
-
RelationServiceNotRegisteredException- если служба отношений не зарегистрирована в сервере MBean
retrieveAllRoles
public RoleList retrieveAllRoles()
Возвращает все роли в отношении без проверки режима чтения.
- Определено в:
-
retrieveAllRolesв интерфейсеRelation - Возвращает:
- список ролей RoleList
getRoleCardinality
public Integer getRoleCardinality(String roleName)
throws IllegalArgumentException,
RoleNotFoundException Возвращает количество MBean, в данный момент ссылающихся на заданную роль.
- Определено в:
-
getRoleCardinalityв интерфейсеRelation - Параметры:
-
roleName- имя роли - Возвращает:
- количество MBean, в данный момент ссылающихся на эту роль
- Использует исключения:
-
IllegalArgumentException- если имя роли равно null -
RoleNotFoundException- если нет роли с заданным именем
setRole
public void setRole(Role role)
throws IllegalArgumentException,
RoleNotFoundException,
RelationTypeNotFoundException,
InvalidRoleValueException,
RelationServiceNotRegisteredException,
RelationNotFoundException Устанавливает заданную роль.
Будет проверять роль в соответствии с её определением в типе отношения.
Отправит уведомление (RelationNotification с типом RELATION_BASIC_UPDATE или RELATION_MBEAN_UPDATE, в зависимости от того, является ли отношение MBean).
- Определено в:
-
setRoleв интерфейсеRelation - Параметры:
-
role- роль, которую нужно установить (имя и новое значение) - Использует исключения:
-
IllegalArgumentException- если роль равна null -
RoleNotFoundException- если нет роли с заданным именем или роль недоступна для записи (проверка на доступ к записи при инициализации роли не выполняется) -
InvalidRoleValueException- если предоставленное значение для роли некорректно, т.е.:- количество MBean, ссылающихся на данное значение, меньше минимальной степени
- количество MBean, ссылающихся на предоставленное значение, превышает максимальную степень
- один из MBean в значении не является объектом ожидаемого класса MBean для этой роли
- MBean, предоставленный для этой роли, не существует
-
RelationServiceNotRegisteredException- если служба отношений не зарегистрирована в сервере MBean -
RelationTypeNotFoundException- если тип отношения не объявлен в службе отношений -
RelationNotFoundException- если отношение не добавлено в службу отношений. - См. также:
getRole(java.lang.String)
setRoles
public RoleResult setRoles(RoleList list)
throws IllegalArgumentException,
RelationServiceNotRegisteredException,
RelationTypeNotFoundException,
RelationNotFoundException Устанавливает заданные роли.
Будет проверять роль в соответствии с её определением в типе отношения.
Отправит одно уведомление (RelationNotification с типом RELATION_BASIC_UPDATE или RELATION_MBEAN_UPDATE, в зависимости от того, является ли отношение MBean) для обновлённой роли.
- Определено в:
-
setRolesв интерфейсеRelation - Параметры:
-
list- список ролей, которые нужно установить - Возвращает:
- объект RoleResult, содержащий список ролей (для ролей, успешно установленных) и список неразрешенных ролей (для ролей, не установленных).
- Использует исключения:
-
IllegalArgumentException- если список ролей равен null -
RelationServiceNotRegisteredException- если служба отношений не зарегистрирована в сервере MBean -
RelationTypeNotFoundException- если тип отношения не объявлен в службе отношений. -
RelationNotFoundException- если MBean отношения не добавлен в службу отношений. - См. также:
getRoles(java.lang.String[])
handleMBeanUnregistration
public void handleMBeanUnregistration(ObjectName objectName,
String roleName)
throws IllegalArgumentException,
RoleNotFoundException,
InvalidRoleValueException,
RelationServiceNotRegisteredException,
RelationTypeNotFoundException,
RelationNotFoundException Обработчик, используемый службой отношений, когда MBean, ссылающийся на роль, отменяет регистрацию.
Служба отношений вызовет этот метод, чтобы позволить отношению выполнить действия, отражающие влияние такой отмены регистрации.
ВНИМАНИЕ. Пользователю не ожидается вызывать этот метод.
Текущая реализация устанавливает роль со своим текущим значением (списком ObjectNames ссылающихся MBean) без отменённого.
- Определено в:
-
handleMBeanUnregistrationв интерфейсеRelation - Параметры:
-
objectName- ObjectName отменённого MBean -
roleName- имя роли, где ссылается MBean - Использует исключения:
-
IllegalArgumentException- если параметр равен null -
RoleNotFoundException- если роль не существует в отношении или недоступна для записи -
InvalidRoleValueException- если значение роли не соответствует связанной информации о роли (это никогда не произойдёт, когда вызов идёт от службы отношений) -
RelationServiceNotRegisteredException- если служба отношений не зарегистрирована в сервере MBean -
RelationTypeNotFoundException- если тип отношения не объявлен в службе отношений. -
RelationNotFoundException- если этот метод вызывается для MBean отношения, не добавленного в службу отношений.
getReferencedMBeans
public Map<ObjectName,List<String>> getReferencedMBeans()
Возвращает MBean, ссылающиеся на различные роли отношения.
- Определено в:
-
getReferencedMBeansв интерфейсеRelation - Возвращает:
- словарь HashMap, отображающий:
ObjectName -> ArrayList строк (имена ролей)
getRelationTypeName
public String getRelationTypeName()
Возвращает имя связанного типа отношения.
- Определено в:
-
getRelationTypeNameв интерфейсеRelation - Возвращает:
- имя типа отношения.
getRelationServiceName
public ObjectName getRelationServiceName()
Возвращает ObjectName службы отношений, обрабатывающей отношение.
- Определено в:
-
getRelationServiceNameв интерфейсеRelation - Возвращает:
- ObjectName службы отношений.
getRelationId
public String getRelationId()
Возвращает идентификатор отношения (используется для уникальной идентификации отношения внутри службы отношений).
- Определено в:
-
getRelationIdв интерфейсеRelation - Возвращает:
- идентификатор отношения.
isInRelationService
public Boolean isInRelationService()
Возвращает внутренний флаг, указывающий, обрабатывается ли объект службой отношений.
- Определено в:
-
isInRelationServiceв интерфейсеRelationSupportMBean - Возвращает:
- логическое значение
Boolean.TRUE, если объект всё ещё обрабатывается службой отношений, иBoolean.FALSEв противном случае.
© 1993, 2020, 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.management/javax/management/relation/RelationSupport.html