JavaTM 2 Platform
Standard Ed. 6

javax.management.relation
類別 RelationSupport

java.lang.Object
  繼承者 javax.management.relation.RelationSupport
所有已實作的介面:
MBeanRegistration, Relation, RelationSupportMBean

public class RelationSupport
extends Object
implements RelationSupportMBean, MBeanRegistration

RelationSupport 物件由 Relation Service 內部使用,表示任何關係型的具有不限數量的角色的簡單關係(只有角色,沒有屬性或方法)。作為內部表示形式,不會向使用者公開它。

RelationSupport 類別遵循標準的 MBean 設計網要。因此,使用者可以決定將 RelationSupport 物件本身實例化為 MBean(因為它遵循 MBean 設計網要),以便在 MBean Server 中註冊,然後將其添加到 Relation Service 中。

使用者還可以在創建自己的 MBean 關係類別時讓其擴展 RelationSupport,以檢索所需介面的實作(請參見下面內容)。

它還可以在使用者關係 MBean 類別中讓一個成員成為 RelationSupport 物件,並通過將所有介面委託給此成員來實作所需介面。

RelationSupport 實作 Relation 介面(將由 Relation Service 處理)。

它還實作 MBeanRegistration 介面,以便能夠檢索它在其中註冊的 MBean Server(如果註冊為 MBean),從而存取其 Relation Service。

從以下版本開始:
1.5

建構子摘要
RelationSupport(String relationId, ObjectName relationServiceName, MBeanServer relationServiceMBeanServer, String relationTypeName, RoleList list)
          創建一個 RelationSupport 物件。
RelationSupport(String relationId, ObjectName relationServiceName, String relationTypeName, RoleList list)
          創建一個 RelationSupport 物件。
 
方法摘要
 RoleResult getAllRoles()
          返回關係中存在的所有角色。
 Map<ObjectName,List<String>> getReferencedMBeans()
          檢索在該關係的各種角色中參考的 MBean。
 String getRelationId()
          返回關係標識符(用於唯一標識 Relation Service 中的關係)。
 ObjectName getRelationServiceName()
          返回處理關係的 Relation Service 的 ObjectName。
 String getRelationTypeName()
          返回相關關係型別的名稱。
 List<ObjectName> getRole(String roleName)
          檢索給定角色名稱的角色值。
 Integer getRoleCardinality(String roleName)
          返回當前在給定角色中參考的 MBean 數。
 RoleResult getRoles(String[] roleNameArray)
          檢索具有給定名稱的角色值。
 void handleMBeanUnregistration(ObjectName objectName, String roleName)
          在註銷角色中參考的 MBean 時由 Relation Service 使用的回調。
 Boolean isInRelationService()
          返回指定該物件是否仍然由 Relation Service 處理的內部標誌。
 void postDeregister()
          允許 MBean 在已從 MBean 伺服器註銷之後執行所需要的任何操作。
 void postRegister(Boolean registrationDone)
          允許 MBean 在被註冊到 MBean 伺服器或註銷失敗後執行任何所需要的操作。
 void preDeregister()
          允許該 MBean 在從 MBean 伺服器註銷之前執行它所需要的任何操作。
 ObjectName preRegister(MBeanServer server, ObjectName name)
          允許 MBean 在被註冊到 MBean 伺服器之前執行它所需要的任何操作。
 RoleList retrieveAllRoles()
          返回關係中的所有角色,不檢查讀取網要。
 void setRelationServiceManagementFlag(Boolean flag)
          指定此關係是否由 Relation Service 處理。
 void setRole(Role role)
          設置給定的角色。
 RoleResult setRoles(RoleList list)
          設置給定的角色。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

RelationSupport

public RelationSupport(String relationId,
                       ObjectName relationServiceName,
                       String relationTypeName,
                       RoleList list)
                throws InvalidRoleValueException,
                       IllegalArgumentException
創建一個 RelationSupport 物件。

在使用者要將 RelationSupport 物件註冊為 MBean 時,或者在創建擴展 RelationSupport 的使用者關係 MBean 類別時,必須使用此建構子。

在 Relation Service 級別不執行任何操作,既不向 RelationService 添加 RelationSupport 物件,也不查看提供的值是否正確。始終創建該物件,除以下情況外:

- 任何所需的參數為 null

- 兩個角色使用了同一名稱。

為了將該物件作為關係處理,務必使用 Relation Service 方法 addRelation() 將 RelationSupport 物件添加到 Relation Service 中。

參數:
relationId - 關係標識符,用來在 Relation Service 中標識關係。

期望在給定的 Relation Service 中唯一。

relationServiceName - 將在其中註冊關係的 Relation Service 的 ObjectName。

此參數是必需的,因為這是知道給定關係的關係型別定義的 Relation Service,所以將能夠檢查更新操作(集)。

relationTypeName - 關係型別的名稱。

期望已在給定的 Relation Service 中創建。

list - 要初始化關係的角色(Role 物件)的列表。可以為 null

期望遵循相關關係型別中的關係資訊。

拋出:
InvalidRoleValueException - 如果兩個角色使用了同一個名稱。
IllegalArgumentException - 如果任何所需參數(關係 id、關係服務 ObjectName、關係服務 MBeanServer 或者關係型別名稱)為 null

RelationSupport

public RelationSupport(String relationId,
                       ObjectName relationServiceName,
                       MBeanServer relationServiceMBeanServer,
                       String relationTypeName,
                       RoleList list)
                throws InvalidRoleValueException,
                       IllegalArgumentException
創建一個 RelationSupport 物件。

在使用者關係 MBean 實作期望通過委託給 RelationSupport 物件受關係支持的介面時,務必使用此建構子。

此物件需要知道期望處理該關係的 Relation Service。所以它必須知道 Relation Service 在其中註冊的 MBean Server。

按照限制,必須像期望處理它的 Relation Service 一樣在同一 MBean Server 中註冊關係 MBean。所以必須創建並註冊使用者關係 MBean,然後可以使用標識的 MBean Server 創建包裹的 RelationSupport 物件。

在 Relation Service 級別不執行任何操作,既不向 RelationService 添加 RelationSupport 物件,也不查看提供的值是否正確。始終創建該物件,除以下情況外:

- 任何所需的參數為 null

- 兩個角色使用了同一個名稱。

為了將該物件作為關係處理,務必使用 Relation Service 方法 addRelation() 將 RelationSupport 物件添加到 Relation Service 中。

參數:
relationId - 關係標識符,用來在 Relation Service 中標識關係。

期望在給定的 Relation Service 中唯一。

relationServiceName - 將在其中註冊關係的 Relation Service 的 ObjectName。

此參數是必需的,因為這是知道給定關係的關係型別定義的 Relation Service,所以將能夠檢查更新操作(集合)。

relationServiceMBeanServer - 該套件裝 MBean 在其中或將在其中註冊的 MBean Server。

期望是 Relation Service 在其中或將在其中註冊的 MBean Server。

relationTypeName - 關係型別的名稱。

期望已在給定的 Relation Service 中創建該名稱。

list - 要初始化關係的角色(Role 物件)的列表。可以為 null

期望遵循相關關係型別中的關係資訊。

拋出:
InvalidRoleValueException - 如果兩個角色使用了同一個名稱。
IllegalArgumentException - 如果任何所需參數(關係 id、關係服務 ObjectName 或者關係型別名稱)為 null
方法詳細資訊

getRole

public List<ObjectName> getRole(String roleName)
                         throws IllegalArgumentException,
                                RoleNotFoundException,
                                RelationServiceNotRegisteredException
檢索給定角色名稱的角色值。

按照關係型別檢查角色是否存在以及是否可讀。

指定者:
介面 Relation 中的 getRole
參數:
roleName - 角色名稱
返回:
作為角色值的 ObjectName 物件的 ArrayList
拋出:
IllegalArgumentException - 如果為 null 角色名稱
RoleNotFoundException - 如果:

- 不存在具有給定名稱的角色

- 角色不可讀。

RelationServiceNotRegisteredException - 如果 Relation Service 未在 MBean Server 中註冊
另請參見:
setRole(javax.management.relation.Role)

getRoles

public RoleResult getRoles(String[] roleNameArray)
                    throws IllegalArgumentException,
                           RelationServiceNotRegisteredException
檢索具有給定名稱的角色值。

按照關係型別檢查每個角色是否存在以及是否可讀。

指定者:
介面 Relation 中的 getRoles
參數:
roleNameArray - 要檢索的角色名稱的陣列
返回:
RoleResult 物件,包括一個 RoleList(針對成功檢索到的角色)和一個 RoleUnresolvedList(針對未檢索到的角色)。
拋出:
IllegalArgumentException - 如果角色名稱為 null
RelationServiceNotRegisteredException - 如果 Relation Service 未在 MBean Server 中註冊。
另請參見:
setRoles(javax.management.relation.RoleList)

getAllRoles

public RoleResult getAllRoles()
                       throws RelationServiceNotRegisteredException
返回關係中存在的所有角色。

指定者:
介面 Relation 中的 getAllRoles
返回:
RoleResult 物件,該物件包括一個 RoleList(針對成功檢索到的角色)和一個 RoleUnresolvedList(針對不可讀的角色)。
拋出:
RelationServiceNotRegisteredException - 如果 Relation Service 未在 MBean Server 中註冊

retrieveAllRoles

public RoleList retrieveAllRoles()
返回關係中的所有角色,不檢查讀取網要。

指定者:
介面 Relation 中的 retrieveAllRoles
返回:
一個 RoleList

getRoleCardinality

public Integer getRoleCardinality(String roleName)
                           throws IllegalArgumentException,
                                  RoleNotFoundException
返回當前在給定角色中參考的 MBean 數。

指定者:
介面 Relation 中的 getRoleCardinality
參數:
roleName - 角色名稱
返回:
當前在此角色中參考的 MBean 數
拋出:
IllegalArgumentException - 如果角色名稱為 null
RoleNotFoundException - 如果不存在具有給定名稱的角色

setRole

public void setRole(Role role)
             throws IllegalArgumentException,
                    RoleNotFoundException,
                    RelationTypeNotFoundException,
                    InvalidRoleValueException,
                    RelationServiceNotRegisteredException,
                    RelationNotFoundException
設置給定的角色。

將按照其在關係的關係型別中提供的相應角色定義檢查角色

將發送通知(帶型別 RELATION_BASIC_UPDATE 或 RELATION_MBEAN_UPDATE 的 RelationNotification,具體取決於該關係是否為 MBean)

指定者:
介面 Relation 中的 setRole
參數:
role - 要設置的角色(名稱和新值)
拋出:
IllegalArgumentException - 如果角色是 null
RoleNotFoundException - 如果不存在具有指定名稱的角色,或者該角色不可寫該角色不可寫(初始化角色時未執行寫入存取網要測試)
InvalidRoleValueException - 如果為角色提供的值無效,即

- 給定值中參考的 MBean 數小於期望的最小程度

- 提供的值中參考的 MBean 數超過期望的最大程度

- 該值中參考的 MBean 的一個物件不是該角色期望的 MBean 類別的物件

- 不存在為該角色提供的 MBean

RelationServiceNotRegisteredException - 如果 Relation Service 未在 MBean Server 中註冊
RelationTypeNotFoundException - 如果尚未在 Relation Service 中宣告該關係型別
RelationNotFoundException - 如果尚未在 Relation Service 中添加關係。
另請參見:
getRole(java.lang.String)

setRoles

public RoleResult setRoles(RoleList list)
                    throws IllegalArgumentException,
                           RelationServiceNotRegisteredException,
                           RelationTypeNotFoundException,
                           RelationNotFoundException
設置給定的角色。

將按照其在關係的關係型別中提供的相應角色定義檢查角色。

每個更新的角色將發送一個通知(帶型別 RELATION_BASIC_UPDATE 或 RELATION_MBEAN_UPDATE 的 RelationNotification,具體取決於該關係是否為 MBean)。

指定者:
介面 Relation 中的 setRoles
參數:
list - 要設置的角色列表
返回:
RoleResult 物件,該物件包括一個 RoleList(針對成功設置的角色)和一個 RoleUnresolvedList(針對未成功設置的角色)。
拋出:
IllegalArgumentException - 如果角色列表為 null
RelationServiceNotRegisteredException - 如果 Relation Service 未在 MBean Server 中註冊
RelationTypeNotFoundException - 如果在 Relation Service 中尚未宣告該關係型別。
RelationNotFoundException - 如果尚未在 Relation Service 中添加關係 MBean。
另請參見:
getRoles(java.lang.String[])

handleMBeanUnregistration

public void handleMBeanUnregistration(ObjectName objectName,
                                      String roleName)
                               throws IllegalArgumentException,
                                      RoleNotFoundException,
                                      InvalidRoleValueException,
                                      RelationServiceNotRegisteredException,
                                      RelationTypeNotFoundException,
                                      RelationNotFoundException
在註銷角色中參考的 MBean 時由 Relation Service 使用的回調。

Relation Service 將調用此方法,以讓該關係採取行動來反映這種註銷的影響。

小心,不要期望使用者調用此方法。

當前實作是為了用其當前值(參考的 MBean 的 ObjectName 列表)而不用註銷的值設置角色。

指定者:
介面 Relation 中的 handleMBeanUnregistration
參數:
objectName - 註銷的 MBean 的 ObjectName
roleName - 在其中參考 MBean 的角色名稱
拋出:
IllegalArgumentException - 如果參數為 null
RoleNotFoundException - 如果角色不在關係中或不可寫
InvalidRoleValueException - 如果角色值不遵循相關角色資訊(這永遠不會在從 Relation Service 中調用時發生)
RelationServiceNotRegisteredException - 如果 Relation Service 未在 MBean Server 註冊
RelationTypeNotFoundException - 如果在 Relation Service 中尚未宣告該關係型別。
RelationNotFoundException - 如果未在 Relation Service 中添加的關係 MBean 調用此方法。

getReferencedMBeans

public Map<ObjectName,List<String>> getReferencedMBeans()
檢索在該關係的各種角色中參考的 MBean。

指定者:
介面 Relation 中的 getReferencedMBeans
返回:
一個 HashMap 映射:

ObjectName -> String 的 ArrayList(角色名)


getRelationTypeName

public String getRelationTypeName()
返回相關關係型別的名稱。

指定者:
介面 Relation 中的 getRelationTypeName
返回:
關係型別的名稱。

getRelationServiceName

public ObjectName getRelationServiceName()
返回處理關係的 Relation Service 的 ObjectName。

指定者:
介面 Relation 中的 getRelationServiceName
返回:
Relation Service 的 ObjectName。

getRelationId

public String getRelationId()
返回關係標識符(用於唯一標識 Relation Service 中的關係)。

指定者:
介面 Relation 中的 getRelationId
返回:
關係 id。

preRegister

public ObjectName preRegister(MBeanServer server,
                              ObjectName name)
                       throws Exception
從介面 MBeanRegistration 複製的描述
允許 MBean 在被註冊到 MBean 伺服器之前執行它所需要的任何操作。如果未指定 MBean 的名稱,則該 MBean 可以提供一個註冊名稱。如果引發任何異常,則該 MBean 不會被註冊到 MBean 伺服器中。

指定者:
介面 MBeanRegistration 中的 preRegister
參數:
server - 將要在其中註冊該 MBean 的 MBean 伺服器。
name - 該 MBean 的物件名。如果 MBeanServer 介面中的某個 createMBean 方法或 registerMBean 方法的 name 參數為 null,則此 name 也為 null。在這種情況下,此方法必須為新 MBean 返回非 null 的 ObjectName。
返回:
MBean 要被註冊的名稱。此值必須不為 null。如果 name 參數不為 null,則它通常但並非一定為返回值。
拋出:
Exception - MBean 伺服器會捕捉此異常並以 MBeanRegistrationException 的形式重新拋出。

postRegister

public void postRegister(Boolean registrationDone)
從介面 MBeanRegistration 複製的描述
允許 MBean 在被註冊到 MBean 伺服器或註銷失敗後執行任何所需要的操作。

指定者:
介面 MBeanRegistration 中的 postRegister
參數:
registrationDone - 指示該 MBean 是否已在 MBean 伺服器中成功註冊。false 值意味著註冊階段已失敗。

preDeregister

public void preDeregister()
                   throws Exception
從介面 MBeanRegistration 複製的描述
允許該 MBean 在從 MBean 伺服器註銷之前執行它所需要的任何操作。

指定者:
介面 MBeanRegistration 中的 preDeregister
拋出:
Exception - MBean 伺服器會捕捉此異常並以 MBeanRegistrationException 的形式重新拋出。

postDeregister

public void postDeregister()
從介面 MBeanRegistration 複製的描述
允許 MBean 在已從 MBean 伺服器註銷之後執行所需要的任何操作。

指定者:
介面 MBeanRegistration 中的 postDeregister

isInRelationService

public Boolean isInRelationService()
返回指定該物件是否仍然由 Relation Service 處理的內部標誌。

指定者:
介面 RelationSupportMBean 中的 isInRelationService
返回:
如果該物件仍然由 Relation Service 處理,則返回等於 Boolean.TRUE 的 Boolean 值;否則,返回等於 Boolean.FALSE 的 Boolean 值。

setRelationServiceManagementFlag

public void setRelationServiceManagementFlag(Boolean flag)
                                      throws IllegalArgumentException
從介面 RelationSupportMBean 複製的描述

指定此關係是否由 Relation Service 處理。

注意,當 Relation Service 通過其管理介面存取該關係時,此方法必須公開。強烈建議不要使用此方法。使用此方法不影響 Relation Service 中的關係物件的註冊,但會提供有關它的錯誤資訊!

指定者:
介面 RelationSupportMBean 中的 setRelationServiceManagementFlag
參數:
flag - 該關係是否由 Relation Service 處理的標誌。
拋出:
IllegalArgumentException - 如果是 null 參數

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only