Example #1
0
  @Override
  public LineProcessor execute(final ExecutionContext context, final LineProcessor output) {
    final UniqArguments args = getArguments(context);
    // input from file?
    if (args.isFileSet()) {
      final FileInput input = new FileInput(args.getFile());
      return getFileInputProcessor(Collections.singletonList(input), context, output, args);
    } else if (args.isPathSet()) {
      final List<File> files = FileUtil.expandFiles(context.getCurrentDirectory(), args.getPath());
      final List<FileInput> inputs = FileInput.multiple(files);
      return getFileInputProcessor(inputs, context, output, args);
    }

    // no, from standard input
    return getStandardInputProcessor(context, output, args);
  }
Example #2
0
 private LineProcessor getStandardInputProcessor(
     ExecutionContext context, LineProcessor output, UniqArguments args) {
   if (args.isGlobal()) {
     if (args.isUniqueOnly()) {
       return new GlobalProcessor.UniqueOnly(this, context, output);
     } else if (args.isDuplicatedOnly()) {
       return new GlobalProcessor.DuplicateOnly(this, context, output);
     } else if (args.isCount()) {
       return new GlobalProcessor.Count(this, context, output);
     }
     return new GlobalProcessor.Normal(this, context, output);
   } else {
     if (args.isUniqueOnly()) {
       return new AdjacentProcessor.UniqueOnly(this, context, output);
     } else if (args.isDuplicatedOnly()) {
       return new AdjacentProcessor.DuplicateOnly(this, context, output);
     } else if (args.isCount()) {
       return new AdjacentProcessor.Count(this, context, output);
     }
     return new AdjacentProcessor.Normal(this, context, output);
   }
 }