|
VolD 0.1
|
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 }