home *** CD-ROM | disk | FTP | other *** search
- package java.beans.beancontext;
-
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.TooManyListenersException;
-
- class BeanContextServicesSupport$BCSSChild$BCSSCServiceClassRef {
- Class serviceClass;
- BeanContextServiceProvider serviceProvider;
- int serviceRefs;
- BeanContextServiceProvider delegateProvider;
- int delegateRefs;
- HashMap requestors;
- // $FF: synthetic field
- private final BeanContextServicesSupport.BCSSChild this$1;
-
- BeanContextServicesSupport$BCSSChild$BCSSCServiceClassRef(BeanContextServicesSupport.BCSSChild var1, Class var2, BeanContextServiceProvider var3, boolean var4) {
- this.this$1 = var1;
- this.requestors = new HashMap(1);
- this.serviceClass = var2;
- if (var4) {
- this.delegateProvider = var3;
- } else {
- this.serviceProvider = var3;
- }
-
- }
-
- void addRequestor(Object var1, BeanContextServiceRevokedListener var2) throws TooManyListenersException {
- BeanContextServiceRevokedListener var3 = (BeanContextServiceRevokedListener)this.requestors.get(var1);
- if (var3 != null && !var3.equals(var2)) {
- throw new TooManyListenersException();
- } else {
- this.requestors.put(var1, var2);
- }
- }
-
- void removeRequestor(Object var1) {
- this.requestors.remove(var1);
- }
-
- void verifyRequestor(Object var1, BeanContextServiceRevokedListener var2) throws TooManyListenersException {
- BeanContextServiceRevokedListener var3 = (BeanContextServiceRevokedListener)this.requestors.get(var1);
- if (var3 != null && !var3.equals(var2)) {
- throw new TooManyListenersException();
- }
- }
-
- void verifyAndMaybeSetProvider(BeanContextServiceProvider var1, boolean var2) {
- BeanContextServiceProvider var3;
- if (var2) {
- var3 = this.delegateProvider;
- if (var3 == null || var1 == null) {
- this.delegateProvider = var1;
- return;
- }
- } else {
- var3 = this.serviceProvider;
- if (var3 == null || var1 == null) {
- this.serviceProvider = var1;
- return;
- }
- }
-
- if (!var3.equals(var1)) {
- throw new UnsupportedOperationException("existing service reference obtained from different BeanContextServiceProvider not supported");
- }
- }
-
- Iterator cloneOfEntries() {
- return ((HashMap)this.requestors.clone()).entrySet().iterator();
- }
-
- Iterator entries() {
- return this.requestors.entrySet().iterator();
- }
-
- boolean isEmpty() {
- return this.requestors.isEmpty();
- }
-
- Class getServiceClass() {
- return this.serviceClass;
- }
-
- BeanContextServiceProvider getServiceProvider() {
- return this.serviceProvider;
- }
-
- BeanContextServiceProvider getDelegateProvider() {
- return this.delegateProvider;
- }
-
- boolean isDelegated() {
- return this.delegateProvider != null;
- }
-
- void addRef(boolean var1) {
- if (var1) {
- ++this.delegateRefs;
- } else {
- ++this.serviceRefs;
- }
-
- }
-
- void releaseRef(boolean var1) {
- if (var1) {
- if (--this.delegateRefs == 0) {
- this.delegateProvider = null;
- } else if (--this.serviceRefs <= 0) {
- this.serviceProvider = null;
- }
- }
-
- }
-
- int getRefs() {
- return this.serviceRefs + this.delegateRefs;
- }
-
- int getDelegateRefs() {
- return this.delegateRefs;
- }
-
- int getServiceRefs() {
- return this.serviceRefs;
- }
- }
-