home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &n…he Search for Life DVD 2 / DVD-ROM.iso / install / jre1_3 / lib / rt.jar / java / beans / beancontext / BeanContextServicesSupport$BCSSChild$BCSSCServiceClassRef.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  2.9 KB  |  130 lines

  1. package java.beans.beancontext;
  2.  
  3. import java.util.HashMap;
  4. import java.util.Iterator;
  5. import java.util.TooManyListenersException;
  6.  
  7. class BeanContextServicesSupport$BCSSChild$BCSSCServiceClassRef {
  8.    Class serviceClass;
  9.    BeanContextServiceProvider serviceProvider;
  10.    int serviceRefs;
  11.    BeanContextServiceProvider delegateProvider;
  12.    int delegateRefs;
  13.    HashMap requestors;
  14.    // $FF: synthetic field
  15.    private final BeanContextServicesSupport.BCSSChild this$1;
  16.  
  17.    BeanContextServicesSupport$BCSSChild$BCSSCServiceClassRef(BeanContextServicesSupport.BCSSChild var1, Class var2, BeanContextServiceProvider var3, boolean var4) {
  18.       this.this$1 = var1;
  19.       this.requestors = new HashMap(1);
  20.       this.serviceClass = var2;
  21.       if (var4) {
  22.          this.delegateProvider = var3;
  23.       } else {
  24.          this.serviceProvider = var3;
  25.       }
  26.  
  27.    }
  28.  
  29.    void addRequestor(Object var1, BeanContextServiceRevokedListener var2) throws TooManyListenersException {
  30.       BeanContextServiceRevokedListener var3 = (BeanContextServiceRevokedListener)this.requestors.get(var1);
  31.       if (var3 != null && !var3.equals(var2)) {
  32.          throw new TooManyListenersException();
  33.       } else {
  34.          this.requestors.put(var1, var2);
  35.       }
  36.    }
  37.  
  38.    void removeRequestor(Object var1) {
  39.       this.requestors.remove(var1);
  40.    }
  41.  
  42.    void verifyRequestor(Object var1, BeanContextServiceRevokedListener var2) throws TooManyListenersException {
  43.       BeanContextServiceRevokedListener var3 = (BeanContextServiceRevokedListener)this.requestors.get(var1);
  44.       if (var3 != null && !var3.equals(var2)) {
  45.          throw new TooManyListenersException();
  46.       }
  47.    }
  48.  
  49.    void verifyAndMaybeSetProvider(BeanContextServiceProvider var1, boolean var2) {
  50.       BeanContextServiceProvider var3;
  51.       if (var2) {
  52.          var3 = this.delegateProvider;
  53.          if (var3 == null || var1 == null) {
  54.             this.delegateProvider = var1;
  55.             return;
  56.          }
  57.       } else {
  58.          var3 = this.serviceProvider;
  59.          if (var3 == null || var1 == null) {
  60.             this.serviceProvider = var1;
  61.             return;
  62.          }
  63.       }
  64.  
  65.       if (!var3.equals(var1)) {
  66.          throw new UnsupportedOperationException("existing service reference obtained from different BeanContextServiceProvider not supported");
  67.       }
  68.    }
  69.  
  70.    Iterator cloneOfEntries() {
  71.       return ((HashMap)this.requestors.clone()).entrySet().iterator();
  72.    }
  73.  
  74.    Iterator entries() {
  75.       return this.requestors.entrySet().iterator();
  76.    }
  77.  
  78.    boolean isEmpty() {
  79.       return this.requestors.isEmpty();
  80.    }
  81.  
  82.    Class getServiceClass() {
  83.       return this.serviceClass;
  84.    }
  85.  
  86.    BeanContextServiceProvider getServiceProvider() {
  87.       return this.serviceProvider;
  88.    }
  89.  
  90.    BeanContextServiceProvider getDelegateProvider() {
  91.       return this.delegateProvider;
  92.    }
  93.  
  94.    boolean isDelegated() {
  95.       return this.delegateProvider != null;
  96.    }
  97.  
  98.    void addRef(boolean var1) {
  99.       if (var1) {
  100.          ++this.delegateRefs;
  101.       } else {
  102.          ++this.serviceRefs;
  103.       }
  104.  
  105.    }
  106.  
  107.    void releaseRef(boolean var1) {
  108.       if (var1) {
  109.          if (--this.delegateRefs == 0) {
  110.             this.delegateProvider = null;
  111.          } else if (--this.serviceRefs <= 0) {
  112.             this.serviceProvider = null;
  113.          }
  114.       }
  115.  
  116.    }
  117.  
  118.    int getRefs() {
  119.       return this.serviceRefs + this.delegateRefs;
  120.    }
  121.  
  122.    int getDelegateRefs() {
  123.       return this.delegateRefs;
  124.    }
  125.  
  126.    int getServiceRefs() {
  127.       return this.serviceRefs;
  128.    }
  129. }
  130.