package org.netbeans.gradle.project.output; import org.jtrim.utils.ExceptionHelper; import org.openide.windows.OutputEvent; import org.openide.windows.OutputListener; public final class OutputLinkDef { private final int startIndex; // inclusive private final int endIndex; // exclusive private final Runnable action; public OutputLinkDef(int startIndex, int endIndex, Runnable action) { ExceptionHelper.checkNotNullArgument(action, "action"); this.startIndex = startIndex; this.endIndex = endIndex; this.action = action; } public OutputLinkDef offsetLinkDef(int offset) { return new OutputLinkDef(startIndex + offset, endIndex + offset, action); } public boolean isEmptyLink() { return endIndex <= startIndex; } public int getStartIndex() { return startIndex; } public int getEndIndex() { return endIndex; } public Runnable getAction() { return action; } public OutputListener toOutputListener() { return new OutputListener() { @Override public void outputLineSelected(OutputEvent ev) { } @Override public void outputLineAction(OutputEvent ev) { action.run(); } @Override public void outputLineCleared(OutputEvent ev) { } }; } }