workcraft/workcraft

View on GitHub
workcraft/WorkcraftCore/src/org/workcraft/tasks/SubtaskMonitor.java

Summary

Maintainability
A
0 mins
Test Coverage
package org.workcraft.tasks;

import java.io.IOException;

import org.workcraft.shared.DataAccumulator;

public class SubtaskMonitor<T> extends BasicProgressMonitor<T> {
    private final ProgressMonitor<?> parent;

    private final DataAccumulator stdoutAccum = new DataAccumulator();
    private final DataAccumulator stderrAccum = new DataAccumulator();

    public SubtaskMonitor(ProgressMonitor<?> parent) {
        this.parent = parent;
    }

    @Override
    public boolean isCancelRequested() {
        return parent.isCancelRequested();
    }

    @Override
    public void stderr(byte[] data) {
        try {
            stderrAccum.write(data);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

    @Override
    public void stdout(byte[] data) {
        try {
            stdoutAccum.write(data);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

    public byte[] getStderrData() {
        return stderrAccum.getData();
    }

    public byte[] getStdoutData() {
        return stdoutAccum.getData();
    }

}