View Javadoc

1   /*
2    * $Id$
3    */
4   
5   package org.apache.maven.usability.plugin;
6   
7     //---------------------------------/
8    //- Imported classes and packages -/
9   //---------------------------------/
10  
11  import java.util.Date;
12  
13  /**
14   * The root of a parameter plugin expression document.
15   * 
16   * @version $Revision$ $Date$
17   */
18  public class ExpressionDocumentation implements java.io.Serializable {
19  
20  
21        //--------------------------/
22       //- Class/Member Variables -/
23      //--------------------------/
24  
25      /**
26       * Field expressions.
27       */
28      private java.util.List expressions;
29  
30  
31        //-----------/
32       //- Methods -/
33      //-----------/
34  
35      /**
36       * Method addExpression.
37       * 
38       * @param expression
39       */
40      public void addExpression( Expression expression )
41      {
42          if ( !(expression instanceof Expression) )
43          {
44              throw new ClassCastException( "ExpressionDocumentation.addExpressions(expression) parameter must be instanceof " + Expression.class.getName() );
45          }
46          getExpressions().add( expression );
47      } //-- void addExpression( Expression ) 
48  
49      /**
50       * Method getExpressions.
51       * 
52       * @return java.util.List
53       */
54      public java.util.List getExpressions()
55      {
56          if ( this.expressions == null )
57          {
58              this.expressions = new java.util.ArrayList();
59          }
60      
61          return this.expressions;
62      } //-- java.util.List getExpressions() 
63  
64      /**
65       * Method removeExpression.
66       * 
67       * @param expression
68       */
69      public void removeExpression( Expression expression )
70      {
71          if ( !(expression instanceof Expression) )
72          {
73              throw new ClassCastException( "ExpressionDocumentation.removeExpressions(expression) parameter must be instanceof " + Expression.class.getName() );
74          }
75          getExpressions().remove( expression );
76      } //-- void removeExpression( Expression ) 
77  
78      /**
79       * Set the list of plugin parameter expressions described by
80       * this
81       *             document.
82       * 
83       * @param expressions
84       */
85      public void setExpressions( java.util.List expressions )
86      {
87          this.expressions = expressions;
88      } //-- void setExpressions( java.util.List ) 
89  
90      private java.util.Map expressionsBySyntax;
91      
92      public java.util.Map getExpressionsBySyntax()
93      {
94          if ( expressionsBySyntax == null )
95          {
96              expressionsBySyntax = new java.util.HashMap();
97         
98              java.util.List expressions = getExpressions();
99         
100             if ( expressions != null && !expressions.isEmpty() )
101             {
102                 for ( java.util.Iterator it = expressions.iterator(); it.hasNext(); )
103                 {
104                     Expression expr = (Expression) it.next();
105        
106                     expressionsBySyntax.put( expr.getSyntax(), expr );
107                 }
108             }
109         }
110         
111         return expressionsBySyntax;
112     }
113     
114     public void flushExpressionsBySyntax()
115     {
116         expressionsBySyntax = null;
117     }
118 
119     private String modelEncoding = "UTF-8";
120 
121     /**
122      * Set an encoding used for reading/writing the model.
123      *
124      * @param modelEncoding the encoding used when reading/writing the model.
125      */
126     public void setModelEncoding( String modelEncoding )
127     {
128         this.modelEncoding = modelEncoding;
129     }
130 
131     /**
132      * @return the current encoding used when reading/writing this model.
133      */
134     public String getModelEncoding()
135     {
136         return modelEncoding;
137     }
138 }