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 source) throws 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 }
|