package com.robonobo.midas.client; import java.util.Date; import com.robonobo.core.api.model.Library; import com.robonobo.core.api.proto.CoreApi.LibraryMsg; import com.robonobo.core.metadata.LibraryCallback; import com.robonobo.midas.client.Params.Operation; public class GetLibraryRequest implements Request { private MidasClientConfig cfg; private Long userId; private Date lastUpdated; private LibraryCallback handler; public GetLibraryRequest(MidasClientConfig cfg, long userId, Date lastUpdated, LibraryCallback handler) { this.cfg = cfg; this.userId = userId; this.lastUpdated = lastUpdated; this.handler = handler; } @Override public int remaining() { if (userId == null) return 0; return 1; } @Override public Params getNextParams() { Params p = new Params(Operation.Get, null, LibraryMsg.newBuilder(), cfg.getLibraryUrl(userId, lastUpdated), userId); userId = null; return p; } @Override public void success(Object obj) { LibraryMsg msg = (LibraryMsg) obj; if(handler != null) handler.success(new Library(msg)); } @Override public void error(Params p, Exception e) { if(handler != null) { Long uid = (Long) p.obj; handler.error(uid, e); } } }