@@ -51,8 +51,8 @@ public class OIFitsProcessor extends OIFitsCommand {
5151 private static final String OPTION_TARGET = "-target" ;
5252 private static final String OPTION_INSNAME = "-insname" ;
5353 private static final String OPTION_NIGHT = "-night" ;
54- private static final String OPTION_BASELINES = "-baselines" ;
5554 private static final String OPTION_MJD_RANGES = "-mjds" ;
55+ private static final String OPTION_BASELINES = "-baselines" ;
5656 private static final String OPTION_WL_RANGES = "-wavelengths" ;
5757
5858 /**
@@ -213,36 +213,67 @@ private static void merge(final String[] args) throws FitsException, IOException
213213
214214 handleArgSeparation (args );
215215
216- // Optional filters:
217- final String targetUID = getOptionArgValue (args , OPTION_TARGET );
218- final String insModeUID = getOptionArgValue (args , OPTION_INSNAME );
219- final String night = getOptionArgValue (args , OPTION_NIGHT );
220- final String mjds = getOptionArgValue (args , OPTION_MJD_RANGES );
221- final String baselines = getOptionArgValue (args , OPTION_BASELINES );
222- final String wavelengths = getOptionArgValue (args , OPTION_WL_RANGES );
223-
224216 final OIFitsCollection oiFitsCollection = OIFitsCollection .create (null , fileLocations );
225217
226218 final Selector selector = new Selector ();
227- if (targetUID != null ) {
228- selector .setTargetUID (targetUID );
219+
220+ if (hasOptionArg (args , OPTION_TARGET )) {
221+ selector .setTargetUID (getOptionArgValue (args , OPTION_TARGET ));
222+ } else {
223+ final String arg = "-" + Selector .FILTER_TARGET_ID .toLowerCase ();
224+ if (hasOptionArg (args , arg )) {
225+ selector .setTargetUID (getOptionArgValue (args , arg ));
226+ }
227+ }
228+ if (hasOptionArg (args , OPTION_INSNAME )) {
229+ selector .setInsModeUID (getOptionArgValue (args , OPTION_INSNAME ));
229230 }
230- if (insModeUID != null ) {
231- selector .setInsModeUID (insModeUID );
231+ if (hasOptionArg (args , OPTION_NIGHT )) {
232+ selector .setNightID (Integer .valueOf (getOptionArgValue (args , OPTION_NIGHT )));
233+ } else {
234+ final String arg = "-" + Selector .FILTER_NIGHT_ID .toLowerCase ();
235+ if (hasOptionArg (args , arg )) {
236+ selector .setNightID (Integer .valueOf (getOptionArgValue (args , arg )));
237+ }
232238 }
233- if (night != null ) {
234- selector .setNightID (Integer .valueOf (night ));
239+ if (hasOptionArg (args , OPTION_MJD_RANGES )) {
240+ selector .addFilter (Selector .FILTER_MJD , parseRanges (getOptionArgValue (args , OPTION_MJD_RANGES )));
241+ } else {
242+ final String arg = "-" + Selector .FILTER_MJD .toLowerCase ();
243+ if (hasOptionArg (args , arg )) {
244+ selector .addFilter (Selector .FILTER_MJD , parseRanges (arg ));
245+ }
246+ }
247+ if (hasOptionArg (args , OPTION_BASELINES )) {
248+ selector .addFilter (Selector .FILTER_STAINDEX , parseStrings (getOptionArgValue (args , OPTION_BASELINES )));
249+ } else {
250+ final String arg = "-" + Selector .FILTER_STAINDEX .toLowerCase ();
251+ if (hasOptionArg (args , arg )) {
252+ selector .addFilter (Selector .FILTER_STAINDEX , parseStrings (getOptionArgValue (args , arg )));
253+ }
235254 }
236- if (baselines != null ) {
237- selector .addFilter (Selector .FILTER_STAINDEX , parseStrings (baselines ));
255+ {
256+ final String arg = "-" + Selector .FILTER_STACONF .toLowerCase ();
257+ if (hasOptionArg (args , arg )) {
258+ selector .addFilter (Selector .FILTER_STACONF , parseStrings (getOptionArgValue (args , arg )));
259+ }
238260 }
239- if (mjds != null ) {
240- selector .addFilter (Selector .FILTER_MJD , parseRanges (mjds ));
261+ if (hasOptionArg (args , OPTION_WL_RANGES )) {
262+ selector .addFilter (Selector .FILTER_EFFWAVE , parseRanges (getOptionArgValue (args , OPTION_WL_RANGES )));
263+ } else {
264+ final String arg = "-" + Selector .FILTER_EFFWAVE .toLowerCase ();
265+ if (hasOptionArg (args , arg )) {
266+ selector .addFilter (Selector .FILTER_EFFWAVE , parseRanges (getOptionArgValue (args , arg )));
267+ }
241268 }
242- if (wavelengths != null ) {
243- selector .addFilter (Selector .FILTER_EFFWAVE , parseRanges (wavelengths ));
269+ {
270+ final String arg = "-" + Selector .FILTER_EFFBAND .toLowerCase ();
271+ if (hasOptionArg (args , arg )) {
272+ selector .addFilter (Selector .FILTER_EFFBAND , parseRanges (getOptionArgValue (args , arg )));
273+ }
244274 }
245275
276+ // TODO: handle extra arguments from OIFITS2 data model
246277 // Call merge
247278 final OIFitsFile result = Merger .process (oiFitsCollection , selector );
248279
@@ -347,6 +378,8 @@ protected static void showArgumentsHelp() {
347378 info ("| [-baselines] <values> Filter result on given Baselines or Triplets (comma-separated) |" );
348379 info ("| [-mjds] <values> Filter result on given MJD ranges (comma-separated pairs) |" );
349380 info ("| [-wavelengths] <values> Filter result on given wavelength ranges (comma-separated pairs) |" );
381+
382+ // TODO: dump extra arguments from OIFITS2 data model
350383 info ("--------------------------------------------------------------------------------------" );
351384 }
352385
@@ -414,42 +447,43 @@ public static String generateCLIargs(final Selector selector) {
414447 final StringBuilder sb = new StringBuilder (128 );
415448
416449 if (selector .getTargetUID () != null ) {
417- sb .append (OIFitsProcessor . OPTION_TARGET ). append ( "| " ).append (Selector .FILTER_TARGET_ID ).append (" " ).append (selector .getTargetUID ()).append (" " );
450+ sb .append ("- " ).append (Selector .FILTER_TARGET_ID . toLowerCase () ).append (" " ).append (selector .getTargetUID ()).append (" " );
418451 }
419452 if (selector .getInsModeUID () != null ) {
420453 sb .append (OIFitsProcessor .OPTION_INSNAME ).append (" " ).append (selector .getInsModeUID ()).append (" " );
421454 }
422455 if (selector .getNightID () != null ) {
423- sb .append (OIFitsProcessor . OPTION_NIGHT ). append ( "| " ).append (Selector .FILTER_NIGHT_ID ).append (" " ).append (selector .getNightID ()).append (" " );
456+ sb .append ("- " ).append (Selector .FILTER_NIGHT_ID . toLowerCase () ).append (" " ).append (selector .getNightID ()).append (" " );
424457 }
425458 /* no way to define selector.tables via CLI */
459+
460+ if (selector .hasFilter (Selector .FILTER_MJD )) {
461+ sb .append ("-" ).append (Selector .FILTER_MJD .toLowerCase ()).append (" " );
462+ dumpRanges (selector .getFilter (Selector .FILTER_MJD ), sb ).append (" " );
463+ }
464+
426465 if (selector .hasFilter (Selector .FILTER_STAINDEX )) {
427- sb .append (OIFitsProcessor . OPTION_BASELINES ). append ( "| " ).append (Selector .FILTER_STAINDEX ).append (" " );
466+ sb .append ("- " ).append (Selector .FILTER_STAINDEX . toLowerCase () ).append (" " );
428467 dumpStrings (selector .getFilter (Selector .FILTER_STAINDEX ), sb ).append (" " );
429468 }
430469 if (selector .hasFilter (Selector .FILTER_STACONF )) {
431- sb .append ("-" ).append (Selector .FILTER_STACONF ).append (" " );
470+ sb .append ("-" ).append (Selector .FILTER_STACONF . toLowerCase () ).append (" " );
432471 dumpStrings (selector .getFilter (Selector .FILTER_STACONF ), sb ).append (" " );
433472 }
434473
435- if (selector .hasFilter (Selector .FILTER_MJD )) {
436- sb .append (OIFitsProcessor .OPTION_MJD_RANGES ).append ("|" ).append (Selector .FILTER_MJD ).append (" " );
437- dumpRanges (selector .getFilter (Selector .FILTER_MJD ), sb ).append (" " );
438- }
439-
440474 if (selector .hasFilter (Selector .FILTER_EFFWAVE )) {
441- sb .append (OIFitsProcessor . OPTION_WL_RANGES ). append ( "| " ).append (Selector .FILTER_EFFWAVE ).append (" " );
475+ sb .append ("- " ).append (Selector .FILTER_EFFWAVE . toLowerCase () ).append (" " );
442476 dumpRanges (selector .getFilter (Selector .FILTER_EFFWAVE ), sb ).append (" " );
443477 }
444478 if (selector .hasFilter (Selector .FILTER_EFFBAND )) {
445- sb .append ("-" ).append (Selector .FILTER_EFFBAND ).append (" " );
479+ sb .append ("-" ).append (Selector .FILTER_EFFBAND . toLowerCase () ).append (" " );
446480 dumpRanges (selector .getFilter (Selector .FILTER_EFFBAND ), sb ).append (" " );
447481 }
448482
449483 // convert generic filters from selector.filters (1D)
450484 for (Map .Entry <String , List <?>> e : selector .getFiltersMap ().entrySet ()) {
451485 if (!Selector .isCustomFilter (e .getKey ())) {
452- sb .append ("-" ).append (e .getKey ()).append (" " );
486+ sb .append ("-" ).append (e .getKey (). toLowerCase () ).append (" " );
453487 dumpRanges ((List <Range >) e .getValue (), sb ).append (" " );
454488 }
455489 }
0 commit comments