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