View Javadoc

1   /*
2    * joey-gen and its relative products are published under the terms
3    * of the Apache Software License.
4    * 
5    * Created on 2004/11/09 12:51:23
6    */
7   package org.asyrinx.joey.gen.model.command;
8   
9   import java.util.ArrayList;
10  import java.util.List;
11  
12  import org.apache.commons.logging.Log;
13  import org.apache.commons.logging.LogFactory;
14  import org.asyrinx.brownie.core.log.DispatchLog;
15  import org.asyrinx.brownie.core.log.LogLevel;
16  import org.asyrinx.joey.gen.model.Element;
17  import org.asyrinx.joey.gen.model.ElementVisitor;
18  
19  /***
20   * @author takeshi
21   */
22  public class Command implements ElementVisitor {
23  
24      private boolean strict = true;
25  
26      protected final List errors = new ArrayList();
27  
28      protected final DispatchLog log = new DispatchLog(LogFactory.getLog(this.getClass()), "info");
29  
30      /***
31       *  
32       */
33      public Command() {
34          super();
35      }
36  
37      protected String element2String(Element element, String msg) {
38          if (element != null)
39              msg += " @" + element.getFullName();
40          msg += " (by command '" + this.getClass().getName() + "')";
41          return msg;
42      }
43  
44      protected void addError(String msg) {
45          addError(null, msg);
46      }
47  
48      protected void addError(Element element, String msg) {
49          addError(element, msg, isStrict());
50      }
51  
52      protected void addError(Element element, String msg, boolean exit) {
53          msg = element2String(element, msg);
54          if (exit)
55              throw new ValidationError(msg, element);
56          else
57              log.warn(msg);
58      }
59  
60      protected void log(String msg) {
61          log(null, msg);
62      }
63  
64      protected void log(Element element, String msg) {
65          msg = element2String(element, msg);
66          log.log(msg);
67      }
68  
69      /***
70       * @return Returns the strict.
71       */
72      public boolean isStrict() {
73          return strict;
74      }
75  
76      /***
77       * @param strict
78       *            The strict to set.
79       */
80      public void setStrict(boolean strict) {
81          this.strict = strict;
82      }
83  
84      /*
85       * (non-Javadoc)
86       * 
87       * @see org.asyrinx.joey.gen.model.ElementVisitor#visit(org.asyrinx.joey.gen.model.Element)
88       */
89      public void execute(Element element) {
90          throw new UnsupportedOperationException("subclass must override");
91      }
92  
93      /*
94       * (non-Javadoc)
95       * 
96       * @see org.asyrinx.joey.gen.model.ElementVisitor#visit(org.asyrinx.joey.gen.model.Element)
97       */
98      public void visit(Element element) {
99          throw new UnsupportedOperationException();
100     }
101 
102 }