Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: marf/Storage/ModuleParams.java


1   package marf.Storage;
2   
3   import java.util.Vector;
4   
5   
6   /**
7    * <p>Class ModuleParams provides ability to pass module-specific parameters from an application.</p>
8    * <p>The specific module should know in which order and how to downcast those params.</p>
9    *
10   * $Id: ModuleParams.java,v 1.13 2005/06/16 19:58:54 mokhov Exp $
11   *
12   * @author Serguei Mokhov
13   * @version $Revision: 1.13 $
14   * @since 0.0.1
15   */
16  public class ModuleParams
17  {
18    /*
19     * ---------------------
20     * Data members
21     * ---------------------
22     */
23  
24    /**
25     * A Vector of preprocessing parameters.
26     */
27    private Vector oPreprocessingParams = new Vector();
28  
29    /**
30     * A Vector of feature extraction parameters.
31     */
32    private Vector oFeatureExtraction   = new Vector();
33  
34    /**
35     * A Vector of classification parameters.
36     */
37    private Vector oClassification      = new Vector();
38  
39  
40    /*
41     * ---------------------
42     * Enumeraion
43     * ---------------------
44     */
45  
46    /**
47     * Indicates that we manipulate on the Preprocessing Vector.
48     */
49    private static final int PREPROCESSING      = 0;
50  
51    /**
52     * Indicates that we manipulate on the Feature Extraction Vector.
53     */
54    private static final int FEATURE_EXTRACTION = 1;
55  
56    /**
57     * Indicates that we manipulate on the Classification Vector.
58     */
59    private static final int CLASSIFICATION     = 2;
60  
61  
62    /*
63     * ---------------------
64     * Methods
65     * ---------------------
66     */
67  
68    /**
69     * Default Constructor.
70     * Does nothing extra.
71     */
72    public ModuleParams()
73    {
74    }
75  
76    /**
77     * Generic <code>set*()</code> method.
78     * Overwrites any possible previous value for a given module with a new one.
79     * @param oParams Vector of paramaters
80     * @param piModuleType the module these parameters are for
81     */
82    private final void setParams(Vector oParams, final int piModuleType)
83    {
84      switch(piModuleType)
85      {
86        case PREPROCESSING:
87          this.oPreprocessingParams = oParams;
88          break;
89  
90        case FEATURE_EXTRACTION:
91          this.oFeatureExtraction = oParams;
92          break;
93  
94        case CLASSIFICATION:
95          this.oClassification = oParams;
96          break;
97  
98        default:
99          System.err.println("ModuleParams.setParams() - Unknown module type: " + piModuleType);
100     }
101   }
102 
103   /**
104    * Generic <code>add*()</code> method.
105    * Appends params vector to whatever there possibly was.
106    * @param oParams Vector of paramaters
107    * @param piModuleType the module these parameters are for
108    */
109   private final void addParams(Vector oParams, final int piModuleType)
110   {
111     switch(piModuleType)
112     {
113       case PREPROCESSING:
114         this.oPreprocessingParams.addAll(oParams);
115         break;
116 
117       case FEATURE_EXTRACTION:
118         this.oFeatureExtraction.addAll(oParams);
119         break;
120 
121       case CLASSIFICATION:
122         this.oClassification.addAll(oParams);
123         break;
124 
125       default:
126         System.err.println("ModuleParams.addParam() - Unknown module type: " + piModuleType);
127     }
128   }
129 
130   /**
131    * Generic <code>addParam()</code> method.
132    * Adds a single object to the corresponding Vector.
133    * @param oParam Parameter object
134    * @param piModuleType the module this parameter is for
135    */
136   private final void addParam(Object oParam, final int piModuleType)
137   {
138     switch(piModuleType)
139     {
140       case PREPROCESSING:
141         this.oPreprocessingParams.add(oParam);
142         break;
143 
144       case FEATURE_EXTRACTION:
145         this.oFeatureExtraction.add(oParam);
146         break;
147 
148       case CLASSIFICATION:
149         this.oClassification.add(oParam);
150         break;
151 
152       default:
153         System.err.println("ModuleParams.addParam() - Unknown module type: " + piModuleType);
154     }
155   }
156 
157   /**
158    * Generic <code>get*()</code> method.
159    * Returns for a given module it's parameters vector.
160    * @param piModuleType module type to get parameters for
161    * @return Vector of paramaters
162    */
163   private final Vector getParams(final int piModuleType)
164   {
165     switch(piModuleType)
166     {
167       case PREPROCESSING:
168         return this.oPreprocessingParams;
169 
170       case FEATURE_EXTRACTION:
171         return this.oFeatureExtraction;
172 
173       case CLASSIFICATION:
174         return this.oClassification;
175 
176       default:
177         System.err.println("ModuleParams.getParams() - Unknown module type: " + piModuleType);
178         return null;
179     }
180   }
181 
182   /**
183    * Retrieves Preprocessing module's parameters.
184    * @return preprocessing parameters vector
185    */
186   public final Vector getPreprocessingParams()
187   {
188     return getParams(PREPROCESSING);
189   }
190 
191   /**
192    * Sets preprocessing parameters vector.
193    * @param poParams parameters vector
194    */
195   public final void setPreprocessingParams(Vector poParams)
196   {
197     setParams(poParams, PREPROCESSING);
198   }
199 
200   /**
201    * Adds (appends) preprocessing parameters vector.
202    * @param poParams parameters vector to append
203    */
204   public final void addPreprocessingParams(Vector poParams)
205   {
206     addParams(poParams, PREPROCESSING);
207   }
208 
209   /**
210    * Adds (appends) a single preprocessing parameter object.
211    * @param poParam object to append
212    */
213   public final void addPreprocessingParam(Object poParam)
214   {
215     addParam(poParam, PREPROCESSING);
216   }
217 
218   /**
219    * Retrieves Feature Extraction module's parameters.
220    * @return feature extraction parameters vector
221    */
222   public final Vector getFeatureExtractionParams()
223   {
224     return getParams(FEATURE_EXTRACTION);
225   }
226 
227   /**
228    * Sets feature extraction parameters vector.
229    * @param poParams parameters vector
230    */
231   public final void setFeatureExtractionParams(Vector poParams)
232   {
233     setParams(poParams, FEATURE_EXTRACTION);
234   }
235 
236   /**
237    * Adds (appends) feature extraction parameters vector.
238    * @param poParams parameters vector to append
239    */
240   public final void addFeatureExtractionParams(Vector poParams)
241   {
242     addParams(poParams, FEATURE_EXTRACTION);
243   }
244 
245   /**
246    * Adds (appends) a single feature extraction parameter object.
247    * @param poParam object to append
248    */
249   public final void addFeatureExtractionParam(Object poParam)
250   {
251     addParam(poParam, FEATURE_EXTRACTION);
252   }
253 
254   /**
255    * Retrieves Classification module's parameters.
256    * @return classification parameters vector
257    */
258   public final Vector getClassificationParams()
259   {
260     return getParams(CLASSIFICATION);
261   }
262 
263   /**
264    * Sets classification parameters vector.
265    * @param poParams parameters vector
266    */
267   public final void setClassificationParams(Vector poParams)
268   {
269     setParams(poParams, CLASSIFICATION);
270   }
271 
272   /**
273    * Adds (appends) classification parameters vector.
274    * @param poParams parameters vector to append
275    */
276   public final void addClassificationParams(Vector poParams)
277   {
278     addParams(poParams, CLASSIFICATION);
279   }
280 
281   /**
282    * Adds (appends) a single classification parameter object.
283    * @param poParam object to append
284    */
285   public final void addClassificationParam(Object poParam)
286   {
287     addParam(poParam, CLASSIFICATION);
288   }
289 
290   /**
291    * Returns source code revision information.
292    * @return revision string
293    * @since 0.3.0
294    */
295   public static String getMARFSourceCodeRevision()
296   {
297     return "$Revision: 1.13 $";
298   }
299 }
300 
301 // EOF