@@ -236,17 +236,17 @@ private static void merge(final String[] args) throws FitsException, IOException
236236 final Selector selector = new Selector ();
237237
238238 if (hasOptionArg (args , OPTION_TARGET )) {
239- selector .setTargetUID ( getOptionArgValue ( args , OPTION_TARGET ));
239+ selector .setTargetUIDs ( parseStrings ( getOptionArgValues ( args , OPTION_TARGET ) ));
240240 } else if (hasOptionArg (args , OPTION_TARGET_ID )) {
241- selector .setTargetUID ( getOptionArgValue ( args , OPTION_TARGET_ID ));
241+ selector .setTargetUIDs ( parseStrings ( getOptionArgValues ( args , OPTION_TARGET_ID ) ));
242242 }
243243 if (hasOptionArg (args , OPTION_INSNAME )) {
244- selector .setInsModeUID ( getOptionArgValue ( args , OPTION_INSNAME ));
244+ selector .setInsModeUIDs ( parseStrings ( getOptionArgValues ( args , OPTION_INSNAME ) ));
245245 }
246246 if (hasOptionArg (args , OPTION_NIGHT )) {
247- selector .setNightID ( Integer . valueOf ( getOptionArgValue (args , OPTION_NIGHT )));
247+ selector .parseNightIDs ( parseStrings ( getOptionArgValues (args , OPTION_NIGHT )));
248248 } else if (hasOptionArg (args , OPTION_NIGHT_ID )) {
249- selector .setNightID ( Integer . valueOf ( getOptionArgValue (args , OPTION_NIGHT_ID )));
249+ selector .parseNightIDs ( parseStrings ( getOptionArgValues (args , OPTION_NIGHT_ID )));
250250 }
251251
252252 if (!addRangeFilter (selector , Selector .FILTER_MJD , args , OPTION_MJD_RANGES )) {
@@ -405,9 +405,9 @@ protected static void showArgumentsHelp() {
405405 info ("| [-o] or [-output] <file_path> Complete path, absolute or relative, for output file |" );
406406 info ("--------------------------------------------------------------------------------------" );
407407 info ("| Filter options available to the command " + COMMAND_MERGE + ": |" );
408- info ("| [-target] <value> Filter result on given Target |" );
409- info ("| [-insname] <value> Filter result on given InsName |" );
410- info ("| [-night] <value> Filter result on given Night (integer) |" );
408+ info ("| [-target] <value> Filter result on given Targets (comma-separated) |" );
409+ info ("| [-insname] <value> Filter result on given InsNames (comma-separated) |" );
410+ info ("| [-night] <value> Filter result on given Nights (integer, comma-separated) |" );
411411 info ("| |" );
412412 info ("| [-baselines] <values> Filter result on given Baselines or Triplets (comma-separated) |" );
413413 info ("| [-mjds] <values> Filter result on given MJD ranges (comma-separated pairs) |" );
@@ -438,12 +438,30 @@ private static void parseStrings(final List<String> values, final String input)
438438 }
439439 }
440440
441- private static StringBuilder dumpStrings (final List <String > values , final StringBuilder sb ) {
441+ private static List <String > parseStrings (final List <String > inputs ) {
442+ List <String > values = null ;
443+
444+ if ((inputs != null ) && !inputs .isEmpty ()) {
445+ for (String input : inputs ) {
446+ if ((input != null ) && !input .isEmpty ()) {
447+ for (String value : input .split ("," )) {
448+ if (values == null ) {
449+ values = new ArrayList <>();
450+ }
451+ values .add (value .trim ());
452+ }
453+ }
454+ }
455+ }
456+ return values ;
457+ }
458+
459+ private static StringBuilder dumpStrings (final List <?> values , final StringBuilder sb ) {
442460 if (values == null || values .isEmpty ()) {
443461 return sb ;
444462 }
445- for (String v : values ) {
446- sb .append (v ).append ("," );
463+ for (Object o : values ) {
464+ sb .append (o ).append ("," );
447465 }
448466 sb .deleteCharAt (sb .length () - 1 );
449467 return sb ;
@@ -486,14 +504,17 @@ public static String generateCLIargs(final Selector selector) {
486504 final StringBuilder sb = new StringBuilder (128 );
487505 sb .append ("CLI args: " );
488506
489- if (selector .getTargetUID () != null ) {
490- appendColumnArg (sb , Selector .FILTER_TARGET_ID ).append (" " ).append (selector .getTargetUID ()).append (" " );
507+ if (selector .getTargetUIDs () != null ) {
508+ appendColumnArg (sb , Selector .FILTER_TARGET_ID ).append (" " );
509+ dumpStrings (selector .getTargetUIDs (), sb ).append (" " );
491510 }
492- if (selector .getInsModeUID () != null ) {
493- sb .append (OIFitsProcessor .OPTION_INSNAME ).append (" " ).append (selector .getInsModeUID ()).append (" " );
511+ if (selector .getInsModeUIDs () != null ) {
512+ sb .append (OIFitsProcessor .OPTION_INSNAME ).append (" " );
513+ dumpStrings (selector .getInsModeUIDs (), sb ).append (" " );
494514 }
495- if (selector .getNightID () != null ) {
496- appendColumnArg (sb , Selector .FILTER_NIGHT_ID ).append (" " ).append (selector .getNightID ()).append (" " );
515+ if (selector .getNightIDs () != null ) {
516+ appendColumnArg (sb , Selector .FILTER_NIGHT_ID ).append (" " );
517+ dumpStrings (selector .getNightIDs (), sb ).append (" " );
497518 }
498519 /* no way to define selector.tables via CLI */
499520
0 commit comments