package com.robonobo.core.api.model; import java.util.*; import com.robonobo.core.api.proto.CoreApi.LibraryMsg; import com.robonobo.core.api.proto.CoreApi.LibraryTrackMsg; public class Library { private Map<String, Date> tracks = new HashMap<String, Date>(); private long userId = -1; public Library() { } public Library(LibraryMsg msg) { if (msg.hasUserId()) userId = msg.getUserId(); for (int i = 0; i < msg.getTrackCount(); i++) { LibraryTrackMsg t = msg.getTrack(i); Date d = t.hasAddedDate() ? new Date(t.getAddedDate()) : null; tracks.put(t.getStreamId(), d); } } public LibraryMsg toMsg() { LibraryMsg.Builder b = LibraryMsg.newBuilder(); if (userId >= 0) b.setUserId(userId); for (String streamId : tracks.keySet()) { LibraryTrackMsg.Builder tb = LibraryTrackMsg.newBuilder(); tb.setStreamId(streamId); Date d = tracks.get(streamId); if (d != null) tb.setAddedDate(d.getTime()); b.addTrack(tb.build()); } return b.build(); } public Map<String, Date> getTracks() { return tracks; } public void setTracks(Map<String, Date> tracks) { this.tracks = tracks; } public long getUserId() { return userId; } public void setUserId(long userId) { this.userId = userId; } }