package org.atomnuke.task.atom.impl; import org.atomnuke.plugin.InstanceContext; import org.atomnuke.plugin.env.NopInstanceEnvironment; import org.atomnuke.sink.AtomSink; import org.atomnuke.sink.manager.SinkManager; import org.atomnuke.plugin.context.InstanceContextImpl; import org.atomnuke.task.atom.AtomTask; import org.atomnuke.task.TaskHandle; import org.atomnuke.util.remote.CancellationRemote; /** * * @author zinic */ public class AtomTaskImpl implements AtomTask { private final SinkManager sinkManager; private final TaskHandle taskHandle; public AtomTaskImpl(SinkManager sinkManager, TaskHandle taskHandle) { this.sinkManager = sinkManager; this.taskHandle = taskHandle; } @Override public TaskHandle handle() { return taskHandle; } @Override public CancellationRemote addSink(AtomSink sink) { return addSink(new InstanceContextImpl<AtomSink>(NopInstanceEnvironment.getInstance(), sink)); } @Override public CancellationRemote addSink(InstanceContext<? extends AtomSink> atomSinkContext) { return sinkManager.addSink(atomSinkContext); } }