Spec-Zone.ru › OpenJDK 8

Класс RelationService

  • java.lang.Object
    • javax.management.NotificationBroadcasterSupport
      • javax.management.relation.RelationService
Все реализованные интерфейсы:
EventListener, MBeanRegistration, NotificationBroadcaster, NotificationEmitter, NotificationListener, RelationServiceMBean

public class RelationService
extends NotificationBroadcasterSupport
implements RelationServiceMBean, MBeanRegistration, NotificationListener

Сервис отношений отвечает за создание и удаление типов отношений и самих отношений, за поддержание согласованности и предоставление механизмов запросов.

Он реализует интерфейс NotificationBroadcaster, расширяя NotificationBroadcasterSupport, чтобы отправлять уведомления при удалении отношения.

Он реализует интерфейс NotificationListener, чтобы иметь возможность получать уведомления об отмене регистрации MBean, ссылающихся на роли в отношениях, и об MBean отношений.

Он реализует интерфейс MBeanRegistration, чтобы иметь возможность получить свой ObjectName и MBean Server.

С:
1.5

Конструкторы

Конструктор и описание
RelationService(boolean immediatePurgeFlag)

Конструктор.

Методы

Модификатор и тип Метод и описание
void addRelation(ObjectName relationObjectName)

Добавляет MBean, созданный пользователем (и зарегистрированный им в MBean Server), как отношение в сервис отношений.

void addRelationType(RelationType relationTypeObj)

Добавляет заданный объект как тип отношения.

Integer checkRoleReading(String roleName, String relationTypeName)

Проверяет, может ли заданная роль читаться в отношении заданного типа.

Integer checkRoleWriting(Role role, String relationTypeName, Boolean initFlag)

Проверяет, может ли заданная роль быть установлена в отношении заданного типа.

void createRelation(String relationId, String relationTypeName, RoleList roleList)

Создаёт простое отношение (представленное объектом RelationSupport) заданного типа отношения и добавляет его в сервис отношений.

void createRelationType(String relationTypeName, RoleInfo[] roleInfoArray)

Создаёт тип отношения (объект RelationTypeSupport) с заданными сведениями о роли (предоставленными объектами RoleInfo) и добавляет его в сервис отношений.

Map<ObjectName,List<String>> findAssociatedMBeans(ObjectName mbeanName, String relationTypeName, String roleName)

Получает MBean, связанные с заданным в отношении.

Map<String,List<String>> findReferencingRelations(ObjectName mbeanName, String relationTypeName, String roleName)

Получает отношения, где заданный MBean указан.

List<String> findRelationsOfType(String relationTypeName)

Возвращает идентификаторы отношений для отношений заданного типа.

List<String> getAllRelationIds()

Возвращает все идентификаторы отношений для всех отношений, обрабатываемых сервисом отношений.

List<String> getAllRelationTypeNames()

Получает имена всех известных типов отношений.

RoleResult getAllRoles(String relationId)

Возвращает все роли, присутствующие в отношении.

MBeanNotificationInfo[] getNotificationInfo()

Возвращает объект NotificationInfo, содержащий имя Java-класса уведомления и типы отправленных уведомлений.

boolean getPurgeFlag()

Возвращает флаг, указывающий, если при получении уведомления об отмене регистрации MBean, ссылающегося на отношение, должна быть выполнена немедленная «очистка» отношений (поиск недействительных отношений) или это будет выполнено только при явном вызове метода purgeRelations.

Map<ObjectName,List<String>> getReferencedMBeans(String relationId)

Получает MBean, на которые ссылаются различные роли отношения.

String getRelationTypeName(String relationId)

Возвращает имя связанного типа отношения для данного отношения.

List<ObjectName> getRole(String relationId, String roleName)

Получает значение роли для заданного имени роли в заданном отношении.

Integer getRoleCardinality(String relationId, String roleName)

Получает количество MBean, в настоящее время указанных в данной роли.

RoleInfo getRoleInfo(String relationTypeName, String roleInfoName)

Получает сведения о роли для заданного имени роли заданного типа отношения.

List<RoleInfo> getRoleInfos(String relationTypeName)

Получает список сведений о роли (объекты RoleInfo) заданного типа отношения.

RoleResult getRoles(String relationId, String[] roleNameArray)

Получает значения ролей с заданными именами в заданном отношении.

void handleNotification(Notification notif, Object handback)

Вызывается при возникновении JMX-уведомления.

Boolean hasRelation(String relationId)

Проверяет, есть ли отношение, идентифицированное в сервисе отношений, с заданным идентификатором отношения.

void isActive()

Проверяет, активен ли сервис отношений.

String isRelation(ObjectName objectName)

Возвращает идентификатор отношения, связанный с заданным ObjectName, если MBean был добавлен как отношение в сервис отношений.

ObjectName isRelationMBean(String relationId)

Если отношение представлено MBean (созданным пользователем и добавленным как отношение в сервис отношений), возвращает ObjectName MBean.

void postDeregister()

Позволяет MBean выполнять любые необходимые операции после того, как он был отменён в сервере MBean.

void postRegister(Boolean registrationDone)

Позволяет MBean выполнять любые необходимые операции после регистрации в сервере MBean или после того, как регистрация завершилась неудачно.

void preDeregister()

Позволяет MBean выполнить любые необходимые операции до того, как он будет отменён сервером MBean.

ObjectName preRegister(MBeanServer server, ObjectName name)

Позволяет MBean выполнить любые необходимые операции перед регистрацией в сервере MBean.

void purgeRelations()

Очищает отношения.

void removeRelation(String relationId)

Удаляет заданное отношение из сервиса отношений.

void removeRelationType(String relationTypeName)

Удаляет заданный тип отношения из сервиса отношений.

void sendRelationCreationNotification(String relationId)

Отправляет уведомление (RelationNotification) о создании отношения.

void sendRelationRemovalNotification(String relationId, List<ObjectName> unregMBeanList)

Отправляет уведомление (RelationNotification) об удалении отношения.

void sendRoleUpdateNotification(String relationId, Role newRole, List<ObjectName> oldValue)

Отправляет уведомление (RelationNotification) об обновлении роли в заданном отношении.

void setPurgeFlag(boolean purgeFlag)

Устанавливает флаг, указывающий, если при получении уведомления об отмене регистрации MBean, ссылающегося на отношение, должна быть выполнена немедленная «очистка» отношений (поиск недействительных отношений), или это будет выполнено только при явном вызове метода purgeRelations.

void setRole(String relationId, Role role)

Устанавливает заданную роль в заданном отношении.

RoleResult setRoles(String relationId, RoleList roleList)

Устанавливает заданные роли в заданном отношении.

void updateRoleMap(String relationId, Role newRole, List<ObjectName> oldValue)

Обрабатывает обновление карты ролей сервиса отношений для обновления заданной роли в заданном отношении.

Методы, унаследованные от класса javax.management.NotificationBroadcasterSupport

addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Конструкторы

RelationService

public RelationService(boolean immediatePurgeFlag)

Конструктор.

Параметры:
immediatePurgeFlag - флаг, указывающий, когда при получении уведомления об отмене регистрации MBean, ссылающегося на отношение, необходимо выполнить немедленное «очищение» отношений (поиск недействительных отношений), или это будет выполнено только при явном вызове метода purgeRelations.

true — немедленное очищение.

Методы

isActive

public void isActive()
              throws RelationServiceNotRegisteredException

Проверяет, активен ли сервис отношений. Текущее условие состоит в том, что сервис отношений должен быть зарегистрирован в сервере MBean.

Определено в:
isActive в интерфейсе RelationServiceMBean
Исключения:
RelationServiceNotRegisteredException — если он не зарегистрирован

preRegister

public ObjectName preRegister(MBeanServer server,
                              ObjectName name)
                       throws Exception

Описание скопировано из интерфейса: MBeanRegistration

Позволяет MBean выполнить любые необходимые операции перед регистрацией в сервере MBean. Если имя MBean не указано, MBean может предоставить имя для своей регистрации. Если возникает какое-либо исключение, MBean не будет зарегистрирован в сервере MBean.

Определено в:
preRegister в интерфейсе MBeanRegistration
Параметры:
server — сервер MBean, в котором будет зарегистрирован MBean.
name — имя объекта MBean. Это имя равно null, если параметр name в одном из методов createMBean или registerMBean в интерфейсе MBeanServer равен null. В этом случае этот метод должен вернуть не null ObjectName для нового MBean.
Возвращает:
Имя, под которым MBean должен быть зарегистрирован. Это значение не должно быть null. Если параметр name не null, это обычно, но не обязательно, возвращаемое значение.
Исключения:
Exception — это исключение будет перехвачено сервером MBean и повторно выброшено как MBeanRegistrationException.

postRegister

public void postRegister(Boolean registrationDone)

Описание скопировано из интерфейса: MBeanRegistration

Позволяет MBean выполнить любые необходимые операции после регистрации в сервере MBean или после неудачной регистрации.

Если реализация этого метода выбрасывает RuntimeException или Error, сервер MBean повторно выбросит их внутри RuntimeMBeanException или RuntimeErrorException соответственно. Однако выброс исключения в postRegister не изменит состояние MBean: если MBean уже был зарегистрирован (registrationDone равно true), MBean останется зарегистрированным.

Это может быть непонятно для кода, вызывающего createMBean() или registerMBean(), поскольку такой код может предположить, что регистрация MBean завершилась неудачей, когда такое исключение возникает. Поэтому рекомендуется, чтобы реализации postRegister не выбрасывали исключения Runtime или ошибки, если этого можно избежать.

Определено в:
postRegister в интерфейсе MBeanRegistration
Параметры:
registrationDone — указывает, была ли MBean успешно зарегистрирована в сервере MBean. Значение false означает, что фаза регистрации завершилась неудачей.

preDeregister

public void preDeregister()
                   throws Exception

Описание скопировано из интерфейса: MBeanRegistration

Позволяет MBean выполнить любые необходимые операции перед отзывом регистрации сервером MBean.

Определено в:
preDeregister в интерфейсе MBeanRegistration
Исключения:
Exception — это исключение будет перехвачено сервером MBean и повторно выброшено как MBeanRegistrationException.

postDeregister

public void postDeregister()

Описание скопировано из интерфейса: MBeanRegistration

Позволяет MBean выполнить любые необходимые операции после отмены регистрации в сервере MBean.

Если реализация этого метода выбрасывает RuntimeException или Error, сервер MBean повторно выбросит их внутри RuntimeMBeanException или RuntimeErrorException соответственно. Однако выброс исключения в postDeregister не изменит состояние MBean: MBean уже был успешно отменён от регистрации и останется таковым.

Это может быть непонятно для кода, вызывающего unregisterMBean(), поскольку он может предположить, что отмена регистрации MBean завершилась неудачей. Поэтому рекомендуется, чтобы реализации postDeregister не выбрасывали исключения Runtime или ошибки, если этого можно избежать.

Определено в:
postDeregister в интерфейсе MBeanRegistration

getPurgeFlag

public boolean getPurgeFlag()

Возвращает флаг, указывающий, следует ли при получении уведомления об отмене регистрации MBean, ссылающегося на отношение, немедленно «очищать» отношения (искать недействительные отношения) или это будет выполнено только при явном вызове метода purgeRelations.

true — немедленное очищение.

Определено в:
getPurgeFlag в интерфейсе RelationServiceMBean
Возвращает:
true, если очищение происходит автоматически.
См. также:
setPurgeFlag(boolean)

setPurgeFlag

public void setPurgeFlag(boolean purgeFlag)

Устанавливает флаг, указывающий, следует ли при получении уведомления об отмене регистрации MBean, ссылающегося на отношение, немедленно «очищать» отношения (поиск недействительных отношений) или это будет выполнено только при явном вызове метода purgeRelations.

true — немедленное очищение.

Определено в:
setPurgeFlag в интерфейсе RelationServiceMBean
Параметры:
purgeFlag — флаг
См. также:
getPurgeFlag()

createRelationType

public void createRelationType(String relationTypeName,
                               RoleInfo[] roleInfoArray)
                        throws IllegalArgumentException,
                               InvalidRelationTypeException

Создаёт тип отношения (объект RelationTypeSupport) с заданными сведениями о ролях (предоставленными объектами RoleInfo) и добавляет его в сервис отношений.

Определено в:
createRelationType в интерфейсе RelationServiceMBean
Параметры:
relationTypeName — имя типа отношения
roleInfoArray — массив сведений о ролях
Исключения:
IllegalArgumentException — если параметр null
InvalidRelationTypeException — если:

- тип отношения с таким именем уже существует

- одно и то же имя использовано для двух разных сведений о ролях

- сведения о ролях не предоставлены

- одно из сведений о ролях равно null

addRelationType

public void addRelationType(RelationType relationTypeObj)
                     throws IllegalArgumentException,
                            InvalidRelationTypeException

Добавляет заданный объект в качестве типа отношения. Ожидается, что объект реализует интерфейс RelationType.

Определено в:
addRelationType в интерфейсе RelationServiceMBean
Параметры:
relationTypeObj — объект типа отношения (реализующий интерфейс RelationType)
Исключения:
IllegalArgumentException — если параметр null или relationTypeObj.getRelationTypeName() возвращает null.
InvalidRelationTypeException — если:

- одно и то же имя использовано для двух разных ролей

- сведения о ролях не предоставлены

- одно из сведений о ролях равно null

- тип отношения с таким именем уже существует

getAllRelationTypeNames

public List<String> getAllRelationTypeNames()

Возвращает имена всех известных типов отношений.

Определено в:
getAllRelationTypeNames в интерфейсе RelationServiceMBean
Возвращает:
Список имен типов отношений (строки).

getRoleInfos

public List<RoleInfo> getRoleInfos(String relationTypeName)
                            throws IllegalArgumentException,
                                   RelationTypeNotFoundException

Возвращает список сведений о ролях (объекты RoleInfo) заданного типа отношения.

Определено в:
getRoleInfos в интерфейсе RelationServiceMBean
Параметры:
relationTypeName — имя типа отношения
Возвращает:
Список объектов 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

Создаёт простое отношение (представленное объектом RelationSupport) заданного типа отношения и добавляет его в сервис отношений.

Роли инициализируются в соответствии со списком ролей, предоставленным в параметре. Те, которые не инициализированы таким образом, устанавливаются в пустой ArrayList ObjectNames.

Отправка уведомления 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, созданный пользователем (и зарегистрированный им в сервере MBean), в качестве связи в сервисе связей.

Чтобы быть добавленным в качестве связи, MBean должен соответствовать следующим условиям:

- реализовывать интерфейс Relation

- иметь для RelationService ObjectName 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

Если связь представлена MBean (созданным пользователем и добавленным в качестве связи в сервисе связей), возвращает ObjectName MBean.

Определено в:
isRelationMBean в интерфейсе RelationServiceMBean
Параметры:
relationId — идентификатор связи, определяющий связь
Возвращает:
ObjectName соответствующего MBean связи или null, если связь не является MBean.
Исключения:
IllegalArgumentException — если null параметр
RelationNotFoundException — связи, связанной с этим идентификатором, нет

isRelation

public String isRelation(ObjectName objectName)
                  throws IllegalArgumentException

Возвращает идентификатор связи, связанный с заданным ObjectName, если MBean был добавлен в качестве связи в сервисе связей.

Определено в:
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 of String

checkRoleReading

public Integer checkRoleReading(String roleName,
                                String relationTypeName)
                         throws IllegalArgumentException,
                                RelationTypeNotFoundException

Проверяет, может ли быть прочитана заданная роль в связи заданного типа.

Определено в:
checkRoleReading в интерфейсе RelationServiceMBean
Параметры:
roleName — имя роли, которую нужно проверить
relationTypeName — имя типа связи
Возвращает:
целое число, соответствующее возможным проблемам, представленным как константы в 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 — флаг, указывающий, что проверка выполняется для инициализации роли, доступ к записи не проверяется.
Возвращает:
целое число, соответствующее возможным проблемам, представленным как константы в 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) о создании связи. Тип уведомления:

- RelationNotification.RELATION_BASIC_CREATION, если связь является внутренним объектом сервиса связей

- RelationNotification.RELATION_MBEAN_CREATION, если связь является добавленным в качестве связи MBean.

Источник объекта — сам сервис связей.

Вызывается в методах Relation Service createRelation() и addRelation().

Определено в:
sendRelationCreationNotification в интерфейсе RelationServiceMBean
Параметры:
relationId — идентификатор обновленной связи
Исключения:
IllegalArgumentException — если null параметр
RelationNotFoundException — связи для данного идентификатора нет

sendRoleUpdateNotification

public void sendRoleUpdateNotification(String relationId,
                                       Role newRole,
                                       List<ObjectName> oldValue)
                                throws IllegalArgumentException,
                                       RelationNotFoundException

Отправляет уведомление (RelationNotification) об обновлении роли в данной связи. Тип уведомления:

- RelationNotification.RELATION_BASIC_UPDATE, если связь является внутренним объектом сервиса связей

- RelationNotification.RELATION_MBEAN_UPDATE, если связь является добавленным в качестве связи MBean.

Источник объекта — сам сервис связей.

Вызывается в методах Relation MBean setRole() (для заданной роли) и setRoles() (для каждой роли) (реализация, предоставленная в классе RelationSupport).

Также вызывается в методах Relation Service setRole() (для заданной роли) и setRoles() (для каждой роли).

Определено в:
sendRoleUpdateNotification в интерфейсе RelationServiceMBean
Параметры:
relationId — идентификатор обновленной связи
newRole — новая роль (имя и новое значение)
oldValue — старое значение роли (список объектов ObjectName)
Исключения:
IllegalArgumentException — если null параметр
RelationNotFoundException — связи для данного идентификатора нет

sendRelationRemovalNotification

public void sendRelationRemovalNotification(String relationId,
                                            List<ObjectName> unregMBeanList)
                                     throws IllegalArgumentException,
                                            RelationNotFoundException

Отправляет уведомление (RelationNotification) об удалении связи. Тип уведомления:

- RelationNotification.RELATION_BASIC_REMOVAL, если связь является внутренним объектом сервиса связей

- RelationNotification.RELATION_MBEAN_REMOVAL, если связь является добавленным в качестве связи MBean.

Источник объекта — сам сервис связей.

Вызывается в методе Relation Service removeRelation().

Определено в:
sendRelationRemovalNotification в интерфейсе RelationServiceMBean
Параметры:
relationId — идентификатор обновленной связи
unregMBeanList — список ObjectName MBean, которые ожидают удаления из-за удаления связи (может быть null)
Исключения:
IllegalArgumentException — если null параметр
RelationNotFoundException — связи для данного идентификатора нет

updateRoleMap

public void updateRoleMap(String relationId,
                          Role newRole,
                          List<ObjectName> oldValue)
                   throws IllegalArgumentException,
                          RelationServiceNotRegisteredException,
                          RelationNotFoundException

Обрабатывает обновление карты ролей службы Relation Service для обновления заданной роли в заданном отношении.

Вызывается в методах setRole() (для заданной роли) и setRoles() (для каждой роли) класса Relation MBean (реализация предоставлена в классе RelationSupport).

Также вызывается в методах setRole() (для заданной роли) и setRoles() (для каждой роли) службы Relation Service.

Для обеспечения согласованности службы Relation Service (в случае разрегистрации MBean) и возможности выполнения запросов, этот метод должен вызываться при обновлении роли.

Определено в:
updateRoleMap в интерфейсе RelationServiceMBean
Параметры:
relationId — идентификатор отношения обновленного отношения
newRole — новая роль (имя и новое значение)
oldValue — старое значение роли (список объектов ObjectName)
Исключения:
IllegalArgumentException — если параметр null
RelationServiceNotRegisteredException — если служба Relation Service не зарегистрирована в сервере MBean
RelationNotFoundException — если нет отношения для заданного идентификатора.

removeRelation

public void removeRelation(String relationId)
                    throws RelationServiceNotRegisteredException,
                           IllegalArgumentException,
                           RelationNotFoundException

Удаляет заданное отношение из службы Relation Service.

Отправляется уведомление RelationNotification, его тип:

- RelationNotification.RELATION_BASIC_REMOVAL, если отношение было только внутренним для Relation Service

- RelationNotification.RELATION_MBEAN_REMOVAL, если отношение зарегистрировано как MBean.

Для MBean, на которые ссылается такое отношение, ничего не будет сделано.

Определено в:
removeRelation в интерфейсе RelationServiceMBean
Параметры:
relationId — идентификатор отношения, подлежащего удалению
Исключения:
RelationServiceNotRegisteredException — если служба Relation Service не зарегистрирована в сервере MBean
IllegalArgumentException — если параметр null
RelationNotFoundException — если нет отношения, соответствующего заданному идентификатору отношения

purgeRelations

public void purgeRelations()
                    throws RelationServiceNotRegisteredException

Очищает отношения.

В зависимости от значения purgeFlag, этот метод вызывается либо автоматически при получении уведомления о разрегистрации MBean, на который ссылается отношение (если флаг установлен в true), либо нет (если флаг установлен в false).

В этом случае пользователю необходимо вызывать его для поддержания согласованности отношений. Следует помнить, что если MBean разрегистрирован, а очистка не выполняется немедленно, если ObjectName повторно используется и назначается другому MBean, на который ссылается отношение, ручное вызов метода purgeRelations() приведет к проблемам, так как он будет рассматривать ObjectName как соответствующий разрегистрированному MBean, а не новому.

Поведение зависит от кратности роли, где ссылается разрегистрированный MBean:

- если удаление одной ссылки на MBean в роли уменьшает количество ссылок меньше минимальной степени, отношение должно быть удалено.

- если оставшееся число ссылок после удаления ссылки на MBean все еще находится в диапазоне кратности, сохраните отношение и обновите его, вызвав обратный вызов handleMBeanUnregistration().

Определено в:
purgeRelations в интерфейсе RelationServiceMBean
Исключения:
RelationServiceNotRegisteredException — если служба Relation Service не зарегистрирована в сервере MBean.

findReferencingRelations

public Map<String,List<String>> findReferencingRelations(ObjectName mbeanName,
                                                         String relationTypeName,
                                                         String roleName)
                                                  throws IllegalArgumentException

Возвращает отношения, где указанный MBean ссылается.

Это соответствует операциям 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

Возвращает MBean, связанные с заданным в отношении.

Это соответствует операциям CIM Associators и AssociatorNames.

Определено в:
findAssociatedMBeans в интерфейсе RelationServiceMBean
Параметры:
mbeanName — ObjectName MBean
relationTypeName — может быть null; если указано, то при поиске будут рассмотрены только отношения указанного типа. В противном случае рассматриваются все типы отношений.
roleName — может быть null; если указано, то будут рассмотрены только отношения, где MBean ссылается на эту роль. В противном случае рассматриваются все роли.
Возвращает:
HashMap, где ключи — ObjectNames связанных MBean, а значение — для каждого ключа ArrayList идентификаторов отношений, в которых 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 — если служба Relation Service не зарегистрирована
IllegalArgumentException — если параметр null
RelationNotFoundException — если нет отношения с заданным идентификатором
RoleNotFoundException — если:

- нет роли с заданным именем

или

- роль недоступна для чтения.

См. также:
setRole(java.lang.String, javax.management.relation.Role)

getRoles

public RoleResult getRoles(String relationId,
                           String[] roleNameArray)
                    throws RelationServiceNotRegisteredException,
                           IllegalArgumentException,
                           RelationNotFoundException

Возвращает значения ролей с заданными именами в заданном отношении.

Определено в:
getRoles в интерфейсе RelationServiceMBean
Параметры:
relationId — идентификатор отношения
roleNameArray — массив имен ролей, которые необходимо получить
Возвращает:
объект RoleResult, включающий RoleList (для ролей, успешно полученных) и RoleUnresolvedList (для ролей, которые не были получены).
Исключения:
RelationServiceNotRegisteredException — если служба Relation Service не зарегистрирована в сервере MBean
IllegalArgumentException — если параметр null
RelationNotFoundException — если нет отношения с заданным идентификатором
См. также:
setRoles(java.lang.String, javax.management.relation.RoleList)

getAllRoles

public RoleResult getAllRoles(String relationId)
                       throws IllegalArgumentException,
                              RelationNotFoundException,
                              RelationServiceNotRegisteredException

Возвращает все роли, присутствующие в отношении.

Определено в:
getAllRoles в интерфейсе RelationServiceMBean
Параметры:
relationId — идентификатор отношения
Возвращает:
объект RoleResult, включающий RoleList (для ролей, успешно полученных) и RoleUnresolvedList (для ролей, которые не доступны для чтения).
Исключения:
IllegalArgumentException — если параметр null
RelationNotFoundException — если нет отношения для заданного идентификатора
RelationServiceNotRegisteredException — если служба Relation Service не зарегистрирована в сервере MBean

getRoleCardinality

public Integer getRoleCardinality(String relationId,
                                  String roleName)
                           throws IllegalArgumentException,
                                  RelationNotFoundException,
                                  RoleNotFoundException

Возвращает количество MBean, в настоящее время ссылающихся на заданную роль.

Определено в:
getRoleCardinality в интерфейсе RelationServiceMBean
Параметры:
relationId — идентификатор отношения
roleName — имя роли
Возвращает:
количество MBean, в настоящее время ссылающихся на эту роль
Исключения:
IllegalArgumentException — если параметр null
RelationNotFoundException — если нет отношения с заданным идентификатором
RoleNotFoundException — если нет роли с заданным именем

setRole

public void setRole(String relationId,
                    Role role)
             throws RelationServiceNotRegisteredException,
                    IllegalArgumentException,
                    RelationNotFoundException,
                    RoleNotFoundException,
                    InvalidRoleValueException

Устанавливает заданную роль в заданном отношении.

Проверит роль в соответствии с ее соответствующим определением роли, предоставленным в типе отношения.

Служба Relation Service будет отслеживать изменения для поддержания согласованности отношений путем обработки разрегистраций MBean, на которые ссылаются.

Определено в:
setRole в интерфейсе RelationServiceMBean
Параметры:
relationId — идентификатор отношения
role — назначаемая роль (имя и новое значение)
Исключения:
RelationServiceNotRegisteredException — если служба Relation Service не зарегистрирована в сервере MBean
IllegalArgumentException — если параметр null
RelationNotFoundException — если нет отношения с заданным идентификатором
RoleNotFoundException — если роль не существует или не доступна для записи
InvalidRoleValueException — если предоставленное значение для роли недопустимо:

- количество MBean, на которые ссылается заданное значение, меньше ожидаемой минимальной степени

или

- количество MBean, на которые ссылается предоставленное значение, превышает ожидаемую максимальную степень

или

- один ссылающийся MBean в значении не является объектом класса MBean, ожидаемого для этой роли

или

- MBean, предоставленный для этой роли, не существует

См. также:
getRole(java.lang.String, java.lang.String)

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 - если нет отношения с заданным идентификатором
См. также:
getRoles(java.lang.String, java.lang.String[])

getReferencedMBeans

public Map<ObjectName,List<String>> getReferencedMBeans(String relationId)
                                                 throws IllegalArgumentException,
                                                        RelationNotFoundException

Извлекает MBean, на которые ссылаются различные роли отношения.

Определено в:
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)

Вызывается при возникновении уведомления JMX. В настоящее время обрабатывает уведомления об отмене регистрации MBean, либо ссылающиеся на роль отношения, либо являющиеся самим отношением.

Определено в:
handleNotification в интерфейсе NotificationListener
Параметры:
notif - Уведомление.
handback - Непрозрачный объект, который помогает слушателю ассоциировать информацию о создателе MBean (может быть null).

getNotificationInfo

public MBeanNotificationInfo[] getNotificationInfo()

Возвращает объект NotificationInfo, содержащий имя Java-класса уведомления и типы отправленных уведомлений.

Определено в:
getNotificationInfo в интерфейсе NotificationBroadcaster
Переопределяет:
getNotificationInfo в классе NotificationBroadcasterSupport
Возвращает:
массив возможных уведомлений.

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API