|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
java.lang.Objectjavax.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 中的 addNotificationListenerlistener - 要接收通知的偵聽器。filter - 過濾器物件。如果 filter 為 null,則處理通知前不執行過濾。handback - 發出通知時要發送到偵聽器的不透明物件。Notification 廣播者物件不能使用此物件。應該不作更改地將通知重新發送到偵聽器。
IllegalArgumentException - 如果 listener 為 null。removeNotificationListener(javax.management.NotificationListener)
public void removeNotificationListener(NotificationListener listener)
throws ListenerNotFoundException
NotificationBroadcaster 複製的描述
NotificationBroadcaster 中的 removeNotificationListenerlistener - 以前添加到此 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 中的 removeNotificationListenerlistener - 以前添加到此 MBean 中的偵聽器。filter - 添加偵聽器時指定的過濾器。handback - 添加偵聽器時指定的回送。
ListenerNotFoundException - 如果沒有在該 MBean 中註冊偵聽器,或者沒有用給定的過濾器和回送註冊它。public MBeanNotificationInfo[] getNotificationInfo()
NotificationBroadcaster 複製的描述返回一個陣列,指示此 MBean 可能發送的每個通知的 Java 類別名和通知型別。
MBean 發送此陣列中未描述的通知是合法的。但是,某些 MBean 伺服器的客戶端要想正常運行,可能要依賴完整的陣列。
NotificationBroadcaster 中的 getNotificationInfopublic 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。