Author: nicolas Date: Fri Apr 24 15:03:03 2009 New Revision: 768328 URL: http://svn.apache.org/viewvc?rev=768328&view=rev Log: RepositoryDecorator to implement Observable
Modified: commons/sandbox/monitoring/branches/modules/core/src/main/java/org/apache/commons/monitoring/repositories/RepositoryDecorator.java Modified: commons/sandbox/monitoring/branches/modules/core/src/main/java/org/apache/commons/monitoring/repositories/RepositoryDecorator.java URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/branches/modules/core/src/main/java/org/apache/commons/monitoring/repositories/RepositoryDecorator.java?rev=768328&r1=768327&r2=768328&view=diff ============================================================================== --- commons/sandbox/monitoring/branches/modules/core/src/main/java/org/apache/commons/monitoring/repositories/RepositoryDecorator.java (original) +++ commons/sandbox/monitoring/branches/modules/core/src/main/java/org/apache/commons/monitoring/repositories/RepositoryDecorator.java Fri Apr 24 15:03:03 2009 @@ -30,7 +30,7 @@ * */ public abstract class RepositoryDecorator - implements Repository + implements Repository, Repository.Observable { private Repository decorated; @@ -99,4 +99,32 @@ { return decorated.start( monitor ); } + + public Repository getDecorated() + { + return decorated; + } + + // --- Repository.Observable --- + + public void addListener( Listener listener ) + { + if ( decorated instanceof Repository.Observable ) + { + ( (Repository.Observable) decorated ).addListener( listener ); + return; + } + throw new UnsupportedOperationException( "Decorated repository is not Observable " + decorated.getClass() ); + } + + public void removeListener( Listener listener ) + { + if ( decorated instanceof Repository.Observable ) + { + ( (Repository.Observable) decorated ).removeListener( listener ); + return; + } + throw new UnsupportedOperationException( "Decorated repository is not Observable " + decorated.getClass() ); + } + }