DefaultActionContext.java
001 /*
002  *  DefaultActionContext.java
003  *
004  *  Copyright (c) 1995-2012, The University of Sheffield. See the file
005  *  COPYRIGHT.txt in the software or at http://gate.ac.uk/gate/COPYRIGHT.txt
006  *
007  *  This file is part of GATE (see http://gate.ac.uk/), and is free
008  *  software, licenced under the GNU Library General Public License,
009  *  Version 2, June 1991 (in the distribution as file licence.html,
010  *  and also available at http://gate.ac.uk/gate/licence.html).
011  *
012  *  $Id: $
013  *
014  */
015 
016 package gate.jape;
017 
018 import gate.Controller;
019 import gate.Corpus;
020 import gate.FeatureMap;
021 import gate.ProcessingResource;
022 
023 /**
024  * Default implementation for an action context.<br>
025  * Note: A JAPE RHS should only ever use the methods defined in
026  * the ActionContext interface, the additional methods implemented here
027  * are for use by the Transducer only.
028  
029  @author Johann Petrak
030  */
031 public class DefaultActionContext implements ActionContext {
032 
033   private static final long serialVersionUID = -6337282565397213344L;
034 
035   protected Corpus corpus;
036   protected FeatureMap prfeatures;
037   protected String prname;
038   protected Controller controller;
039   protected boolean phaseEnded = false;
040   protected ProcessingResource pr;
041   protected boolean debug = false;
042 
043   public DefaultActionContext() {}
044 
045   public void setCorpus(Corpus corpus) {
046     this.corpus = corpus;
047   }
048   public void setPRFeatures(FeatureMap features) {
049     this.prfeatures = features;
050   }
051 
052   public void setPRName(String name) {
053     this.prname = name;
054   }
055   
056   public void setPR(ProcessingResource pr) {
057     this.pr = pr;
058   }
059   
060   @Override
061   public Corpus getCorpus() {
062     return corpus;
063   }
064 
065   @Override
066   public FeatureMap getPRFeatures() {
067     return prfeatures;
068   }
069   
070   @Override
071   public String getPRName() {
072     return prname;
073   }
074 
075   public void setController(Controller c) {
076     controller = c;
077   }
078 
079   @Override
080   public Controller getController() {
081     return controller;
082   }
083   
084   @Override
085   public boolean isDebuggingEnabled() {
086     return debug;
087   }
088   
089   public void setDebuggingEnabled(boolean debug) {
090     this.debug = debug;
091   }
092 
093   @Override
094   public boolean endPhase() {
095     phaseEnded = true;
096     return true;
097   }
098 
099 
100   public boolean isPhaseEnded() {
101     return phaseEnded;
102   }
103 
104   public void setPhaseEnded(boolean isended) {
105     phaseEnded = isended;
106   }
107   
108   @Override
109   public boolean isPREnabled() {
110     return gate.Utils.isEnabled(controller, pr);
111   }
112 
113 }