|
ConditionalControllerPersistence |
|
1 package gate.util.persistence; 2 3 import java.util.*; 4 5 import gate.*; 6 import gate.creole.*; 7 import gate.persist.PersistenceException; 8 /** 9 * Persistence handler for {@link gate.creole.ConditionalController}s 10 */ 11 12 public class ConditionalControllerPersistence extends ControllerPersistence { 13 /** 14 * Populates this Persistence with the data that needs to be stored from the 15 * original source object. 16 */ 17 public void extractDataFromSource(Object source)throws PersistenceException{ 18 if(! (source instanceof ConditionalController)){ 19 throw new UnsupportedOperationException( 20 getClass().getName() + " can only be used for " + 21 ConditionalController.class.getName() + 22 " objects!\n" + source.getClass().getName() + 23 " is not a " + ConditionalController.class.getName()); 24 } 25 super.extractDataFromSource(source); 26 27 ConditionalController controller = (ConditionalController)source; 28 29 strategiesList = new ArrayList(controller.getRunningStrategies().size()); 30 31 Iterator stratIter = controller.getRunningStrategies().iterator(); 32 while(stratIter.hasNext()) ((List)strategiesList).add(stratIter.next()); 33 34 strategiesList = PersistenceManager. 35 getPersistentRepresentation(strategiesList); 36 } 37 38 /** 39 * Creates a new object from the data contained. This new object is supposed 40 * to be a copy for the original object used as source for data extraction. 41 */ 42 public Object createObject()throws PersistenceException, 43 ResourceInstantiationException{ 44 ConditionalController controller = 45 (ConditionalController)super.createObject(); 46 if(controller.getRunningStrategies().isEmpty()){ 47 controller.setRunningStrategies( 48 (Collection)PersistenceManager. 49 getTransientRepresentation(strategiesList)); 50 } 51 return controller; 52 } 53 protected Object strategiesList; 54 55 /** 56 * Serialisation ID 57 */ 58 static final long serialVersionUID = -746291109981304574L; 59 }
|
ConditionalControllerPersistence |
|