All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.unix4j.processor.InputLineProcessor Maven / Gradle / Ivy

package org.unix4j.processor;

import org.unix4j.command.ExitValueException;
import org.unix4j.io.Input;
import org.unix4j.line.Line;

/**
 * A line processor for a single input
 */
public class InputLineProcessor implements LineProcessor {
	private final InputProcessor processor;
	private final LineProcessor output;
    private final Input input;

	public InputLineProcessor(Input input, InputProcessor processor, LineProcessor output) {
		this.input = input;
		this.processor = processor;
		this.output = output;
	}

	@Override
	public boolean processLine(Line line) {
		return false;// we want no input, we have it already
	}

	@Override
	public void finish() {
        try {
            processor.begin(input, output);
            for (final Line line : input) {
                if (!processor.processLine(input, line, output)) {
                    break;// wants no more lines
                }
            }
            processor.finish(input, output);
            input.close();
        } catch (ExitValueException e) {
            e.setInput(input);
            throw e;
        }
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy