⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 storagesizelistenerhelper.java

📁 java开源的企业总线.xmlBlaster
💻 JAVA
字号:
/*------------------------------------------------------------------------------Name:      StorageSizeListenerHelper.javaProject:   xmlBlaster.orgCopyright: xmlBlaster.org, see xmlBlaster-LICENSE file------------------------------------------------------------------------------*/package org.xmlBlaster.util.queue;import java.util.ArrayList;import java.util.logging.Level;import java.util.logging.Logger;/** * StorageSizeListenerHelper * @author <a href="mailto:michele@laghi.eu">Michele Laghi</a> */public class StorageSizeListenerHelper {      private ArrayList storageSizeListeners;   private Object storageSizeListenersSync = new Object();   private I_Storage storage;   private final static Logger log = Logger.getLogger(StorageSizeListenerHelper.class.getName());      public StorageSizeListenerHelper(I_Storage storage) {      this.storage = storage;   }      /**    * @see I_Queue#addStorageSizeListener(I_StorageSizeListener)    */   public void addStorageSizeListener(I_StorageSizeListener listener) {      if (listener == null)          throw new IllegalArgumentException(storage.getStorageId().getId() + ": addStorageSizeListener(null) is not allowed");      synchronized(this.storageSizeListenersSync) {         if (this.storageSizeListeners == null)            this.storageSizeListeners = new ArrayList();         this.storageSizeListeners.add(listener);      }   }      /**    * @see I_Queue#removeStorageSizeListener(I_StorageSizeListener)    */   public void removeStorageSizeListener(I_StorageSizeListener listener) {      synchronized(this.storageSizeListenersSync) {         if (listener == null) this.storageSizeListeners = null;         else {            if ((this.storageSizeListeners) == null)               return;            if (!this.storageSizeListeners.remove(listener))               log.warning("removeStorageSizeListener: could not remove listener '" + listener.toString() + "' since not registered");            if (this.storageSizeListeners.size() == 0)                this.storageSizeListeners = null;         }      }   }      public final void invokeStorageSizeListener() {      if (this.storageSizeListeners != null) {         I_StorageSizeListener[] listeners = null;         synchronized(this.storageSizeListenersSync) {             listeners = (I_StorageSizeListener[])this.storageSizeListeners.toArray(new I_StorageSizeListener[this.storageSizeListeners.size()]);         }         for (int i=0; i < listeners.length; i++) {            try {               listeners[i].changed(storage, storage.getNumOfEntries(), storage.getNumOfBytes(), storage.isShutdown());            }            catch (NullPointerException e) {               if (log.isLoggable(Level.FINE)) log.fine("invokeStorageSizeListener() call is not possible as another thread has removed storageSizeListeners, this is OK to prevent a synchronize.");            }         }      }   }   /**    * @see I_Queue#hasStorageSizeListener(I_StorageSizeListener)    */   public boolean hasStorageSizeListener(I_StorageSizeListener listener) {      if (listener == null)         return this.storageSizeListeners != null;      else {         synchronized(this.storageSizeListenersSync) {            if (this.storageSizeListeners == null) return false;            return this.storageSizeListeners.contains(listener);         }      }   }   /**    * @see I_Queue#getStorageSizeListeners()    */   public I_StorageSizeListener[] getStorageSizeListeners() {      if (this.storageSizeListeners == null)         return new I_StorageSizeListener[0];      synchronized (this.storageSizeListenersSync) {         int size = storageSizeListeners.size();         return (I_StorageSizeListener[])storageSizeListeners.toArray(new I_StorageSizeListener[size]);      }   }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -