UnconditionalRunningStrategyPersistence.java
01 package gate.util.persistence;
02 
03 import gate.ProcessingResource;
04 import gate.creole.ResourceInstantiationException;
05 import gate.creole.RunningStrategy.UnconditionalRunningStrategy;
06 import gate.persist.PersistenceException;
07 
08 import java.io.Serializable;
09 
10 /**
11  * Persistent holder for {@link gate.creole.UnconditionalRunningStrategy}.
12  */
13 
14 public class UnconditionalRunningStrategyPersistence implements Persistence {
15 
16   public void extractDataFromSource(Object sourcethrows PersistenceException {
17     if((source instanceof UnconditionalRunningStrategy))
18       throw new UnsupportedOperationException(
19                 getClass().getName() " can only be used for " +
20                 UnconditionalRunningStrategy.class.getName() +
21                 " objects!\n" + source.getClass().getName() +
22                 " is not a " + UnconditionalRunningStrategy.class.getName());
23     UnconditionalRunningStrategy strategy = (UnconditionalRunningStrategy)source;
24     this.pr = PersistenceManager.getPersistentRepresentation(strategy.getPR());
25     this.shouldRun = strategy.shouldRun();
26   }
27 
28 
29   public Object createObject() throws PersistenceException,
30                                       ResourceInstantiationException {
31     return new UnconditionalRunningStrategy(
32             (ProcessingResource)PersistenceManager.
33                getTransientRepresentation(pr),
34             shouldRun);
35   }
36 
37   protected boolean shouldRun;
38 
39   protected Serializable pr;
40   
41   /**
42    * Serialisation ID
43    */
44   private static final long serialVersionUID = 5049829826299681555L;
45 }