VolD 0.1

LocalReplicator.java

Go to the documentation of this file.
00001 
00002 package de.zib.vold.replication;
00003 
00004 import de.zib.vold.volatilelogic.VolatileDirectory;
00005 
00006 import java.util.List;
00007 import java.util.Set;
00008 
00009 import org.slf4j.Logger;
00010 import org.slf4j.LoggerFactory;
00011 
00019 public class LocalReplicator implements Replicator
00020 {
00021         protected final Logger log = LoggerFactory.getLogger( this.getClass() );
00022         private VolatileDirectory replica;
00023 
00029         public LocalReplicator( VolatileDirectory replica )
00030         {
00031                 this.replica = replica;
00032         }
00033 
00037         public LocalReplicator( )
00038         {
00039                 this.replica = null;
00040         }
00041 
00047         public void setReplica( VolatileDirectory replica )
00048         {
00049                 this.replica = replica;
00050         }
00051 
00055         public void checkState( )
00056         {
00057                 if( null == replica )
00058                 {
00059                         throw new IllegalStateException( "Tried to operate on ReplicatedVolatileDirectory while it had not been initialized yet. You first need to set volatile directory!" );
00060                 }
00061         }
00062 
00069         @Override
00070         public void insert( List< String > key, Set< String > value )
00071         {
00072                 // guard
00073                 {
00074                         log.trace( "Insert into replica " + replica.getClass().getName() + ": " + key.toString() + " |--> " + value.toString() );
00075 
00076                         checkState();
00077                 }
00078 
00079                 replica.insert( key, value );
00080         }
00081 
00087         @Override
00088         public void refresh( List< String > key )
00089         {
00090                 // guard
00091                 {
00092                         log.trace( "Refresh on replica " + replica.getClass().getName() + ": " + key.toString() );
00093 
00094                         checkState();
00095                 }
00096 
00097                 replica.refresh( key );
00098         }
00099 
00105         @Override
00106         public void delete( List< String > key )
00107         {
00108                 // guard
00109                 {
00110                         log.trace( "Delete: " + key.toString() );
00111 
00112                         checkState();
00113                 }
00114 
00115                 replica.delete( key );
00116         }
00117 }