package com.robonobo.midas.client; import java.util.Collection; import com.robonobo.core.api.model.Playlist; import com.robonobo.core.api.proto.CoreApi.PlaylistMsg; import com.robonobo.core.metadata.PlaylistCallback; import com.robonobo.midas.client.Params.Operation; public class SharePlaylistRequest implements Request { private MidasClientConfig cfg; private Long plId; private Collection<Long> friendIds; private Collection<String> emails; private PlaylistCallback handler; public SharePlaylistRequest(MidasClientConfig cfg, long playlistId, Collection<Long> shareFriendIds, Collection<String> friendEmails, PlaylistCallback handler) { this.cfg = cfg; this.plId = playlistId; this.friendIds = shareFriendIds; this.emails = friendEmails; this.handler = handler; } @Override public int remaining() { if(plId == null) return 0; return 1; } @Override public Params getNextParams() { Params p = new Params(Operation.Get, null, PlaylistMsg.newBuilder(), cfg.getSharePlaylistUrl(plId, friendIds, emails), plId); plId = null; return p; } @Override public void success(Object obj) { if(handler != null) handler.success(new Playlist((PlaylistMsg) obj)); } @Override public void error(Params p, Exception e) { if(handler != null) { Long plId = (Long) p.obj; handler.error(plId, e); } } }