|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.management.NotificationBroadcasterSupport
public class NotificationBroadcasterSupport
提供 NotificationEmitter
介面的實作。該類別可以用作發送通知的 MBean 的父級類別。
預設情況下,通知排程模型是同步的。也就是說,當某一執行緒調用 sendNotification 時,將在該執行緒中調用每個偵聽器的 NotificationListener.handleNotification
方法。可以通過覆寫子類別中的 handleNotification
或者通過將 Executor 傳遞給建構子來覆寫此預設值。
如果過濾器或偵聽器的方法調用拋出 Exception
,則該異常不會阻止調用其他偵聽器。不過,如果過濾器、Executor.execute
或 handleNotification
的方法調用(未指定任何 Excecutor
時)拋出 Error
,則將該 Error
傳播到 sendNotification
的調用者。
通常不會同步調用使用 JMX Remote API 添加的遠端偵聽器(請參閱 JMXConnector)。也就是說,當 sendNotification 返回時,不保證任何遠端偵聽器都已經收到通知。
建構子摘要 | |
---|---|
NotificationBroadcasterSupport()
建構一個 NotificationBroadcasterSupport,其中的每個偵聽器都由發送通知的執行緒調用。 |
|
NotificationBroadcasterSupport(Executor executor)
建構一個 NotificationBroadcasterSupport,其中的每個偵聽器都是使用給定 Executor 調用的。 |
|
NotificationBroadcasterSupport(Executor executor,
MBeanNotificationInfo... info)
使用關於可能發送的通知的資訊建構一個 NotificationBroadcasterSupport,其中的每個偵聽器都是使用給定 Executor 調用的。 |
|
NotificationBroadcasterSupport(MBeanNotificationInfo... info)
使用關於可能發送的通知的資訊建構一個 NotificationBroadcasterSupport。 |
方法摘要 | |
---|---|
void |
addNotificationListener(NotificationListener listener,
NotificationFilter filter,
Object handback)
添加一個偵聽器。 |
MBeanNotificationInfo[] |
getNotificationInfo()
返回一個陣列,指示此 MBean 可能發送的每個通知的 Java 類別名和通知型別。 |
protected void |
handleNotification(NotificationListener listener,
Notification notif,
Object handback)
為了向偵聽器發送通知,由該偵聽器的 sendNotification 調用此方法。 |
void |
removeNotificationListener(NotificationListener listener)
從此 MBean 移除一個偵聽器。 |
void |
removeNotificationListener(NotificationListener listener,
NotificationFilter filter,
Object handback)
從此 MBean 移除一個偵聽器。 |
void |
sendNotification(Notification notification)
發送一個通知。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
建構子詳細資訊 |
---|
public NotificationBroadcasterSupport()
NotificationBroadcasterSupport(null, null)
。
public NotificationBroadcasterSupport(Executor executor)
Executor
調用的。在調用 sendNotification
時,如果使用 null NotificationFilter
添加了某個偵聽器,或者如果 isNotificationEnabled
為正在發送的通知返回 true,則選擇該偵聽器。對 NotificationFilter.isNotificationEnabled
的調用發生在調用了 sendNotification
的執行緒中。然後使用調用 handleNotification
方法的命令為每個選定的偵聽器調用 executor.execute
。此建構子等效於 NotificationBroadcasterSupport(executor, null)
。
executor
- 由方法 sendNotification
用來發送每個通知的執行程序。如果該參數為 null,則調用 sendNotification
的執行緒將調用 handleNotification
方法本身。public NotificationBroadcasterSupport(MBeanNotificationInfo... info)
使用關於可能發送的通知的資訊建構一個 NotificationBroadcasterSupport。每個偵聽器都由發送通知的執行緒調用。此建構子等效於 NotificationBroadcasterSupport(null, info)
。
如果 info
陣列不為空,則由該建構子複製它,這類似於使用 info.clone()
,並且對 getNotificationInfo()
的每次調用都返回一個新副本。
info
- 一個陣列,指示此 MBean 可能發送的每個通知、這些通知的 Java 類別的名稱和通知型別。該陣列可以為 null,它等效於一個空陣列。public NotificationBroadcasterSupport(Executor executor, MBeanNotificationInfo... info)
使用關於可能發送的通知的資訊建構一個 NotificationBroadcasterSupport,其中的每個偵聽器都是使用給定 Executor
調用的。
在調用 sendNotification
時,如果使用 null NotificationFilter
添加了某個偵聽器,或者如果 isNotificationEnabled
為正在發送的通知返回 true,則選擇該偵聽器。對 NotificationFilter.isNotificationEnabled
的調用發生在調用了 sendNotification
的執行緒中。然後使用調用 handleNotification
方法的命令為每個選定的偵聽器調用 executor.execute
。
如果 info
陣列不為空,則由該建構子複製它,這類似於使用 info.clone()
,並且對 getNotificationInfo()
的每次調用都返回一個新副本。
executor
- 由方法 sendNotification
用來發送每個通知的執行程序。如果該參數為 null,則調用 sendNotification
的執行緒將調用 handleNotification
方法本身。info
- 一個陣列,指示此 MBean 可能發送的每個通知、這些通知的 Java 類別的名稱和通知型別。該陣列可以為 null,它等效於一個空陣列。方法詳細資訊 |
---|
public void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
NotificationBroadcaster
中的 addNotificationListener
listener
- 要接收通知的偵聽器。filter
- 過濾器物件。如果 filter 為 null,則處理通知前不執行過濾。handback
- 發出通知時要發送到偵聽器的不透明物件。Notification 廣播者物件不能使用此物件。應該不作更改地將通知重新發送到偵聽器。
IllegalArgumentException
- 如果 listener 為 null。removeNotificationListener(javax.management.NotificationListener)
public void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException
NotificationBroadcaster
複製的描述
NotificationBroadcaster
中的 removeNotificationListener
listener
- 以前添加到此 MBean 中的偵聽器。
ListenerNotFoundException
- 如果沒有在 MBean 中註冊該偵聽器。NotificationBroadcaster.addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)
,
NotificationEmitter.removeNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)
public void removeNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws ListenerNotFoundException
NotificationEmitter
複製的描述從此 MBean 移除一個偵聽器。該 MBean 必須有一個與給定 listener
、filter
和 handback
參數完全比對的偵聽器。如果有多個此類別偵聽器,則只移除一個偵聽器。
當且僅當在要移除的偵聽器中 filter
和 handback
參數為 null 時,這兩個參數才可以為 null。
NotificationEmitter
中的 removeNotificationListener
listener
- 以前添加到此 MBean 中的偵聽器。filter
- 添加偵聽器時指定的過濾器。handback
- 添加偵聽器時指定的回送。
ListenerNotFoundException
- 如果沒有在該 MBean 中註冊偵聽器,或者沒有用給定的過濾器和回送註冊它。public MBeanNotificationInfo[] getNotificationInfo()
NotificationBroadcaster
複製的描述返回一個陣列,指示此 MBean 可能發送的每個通知的 Java 類別名和通知型別。
MBean 發送此陣列中未描述的通知是合法的。但是,某些 MBean 伺服器的客戶端要想正常運行,可能要依賴完整的陣列。
NotificationBroadcaster
中的 getNotificationInfo
public void sendNotification(Notification notification)
Executor
,則為每個選定的偵聽器提供一項任務,以便將通知發送給該偵聽器。
notification
- 要發送的通知。protected void handleNotification(NotificationListener listener, Notification notif, Object handback)
為了向偵聽器發送通知,由該偵聽器的 sendNotification
調用此方法。在子類別中可覆寫此方法,以更改通知傳遞的行為,例如在一個單獨的執行緒中傳遞該通知。
此方法的預設實作等效於
listener.handleNotification(notif, handback);
listener
- 要接收通知的偵聽器。notif
- 傳遞給偵聽器的通知。handback
- 添加偵聽器時提供的回調物件。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。