Класс 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.

RelationSupport​(String relationId, ObjectName relationServiceName, MBeanServer relationServiceMBeanServer, String relationTypeName, RoleList list)

Создает объект RelationSupport.

Методы

Модификатор и тип Метод Описание
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

Spec-Zone .ru
спецификации, руководства, описания, API