package com.robonobo.midas.client; import java.util.Collection; import java.util.Stack; import com.robonobo.core.api.model.Stream; import com.robonobo.core.metadata.StreamCallback; import com.robonobo.midas.client.Params.Operation; public class PutStreamRequest implements Request { MidasClientConfig cfg; StreamCallback handler; Stack<Stream> streams = new Stack<Stream>(); public PutStreamRequest(MidasClientConfig cfg, Collection<Stream> streams, StreamCallback handler) { this.cfg = cfg; this.handler = handler; this.streams.addAll(streams); } public PutStreamRequest(MidasClientConfig cfg, Stream s, StreamCallback handler) { this.cfg = cfg; this.handler = handler; this.streams.add(s); } @Override public Params getNextParams() { Stream s = streams.pop(); return new Params(Operation.Put, s.toMsg(), null, cfg.getStreamUrl(s.getStreamId()), s); } @Override public int remaining() { return streams.size(); } @Override public void success(Object obj) { if(handler != null) handler.success(null); } @Override public void error(Params p, Exception e) { if (handler != null) { Stream s = (Stream) p.obj; handler.error(s.getStreamId(), e); } } }