package org.dodgybits.shuffle.android.synchronisation.tracks.parsing; import java.text.ParseException; import org.dodgybits.shuffle.android.core.activity.flurry.Analytics; import org.dodgybits.shuffle.android.core.model.Context; import org.dodgybits.shuffle.android.core.model.EntityBuilder; import org.dodgybits.shuffle.android.core.model.Id; import org.dodgybits.shuffle.android.core.model.Context.Builder; import org.dodgybits.shuffle.android.core.util.DateUtils; public class ContextParser extends Parser<Context> { private Builder specificBuilder; public ContextParser(Analytics analytics) { super("context", analytics); appliers.put("name", new Applier(){ @Override public boolean apply(String value) { specificBuilder.setName(value); return true; } }); appliers.put("hide", new Applier(){ @Override public boolean apply(String value) { boolean v = Boolean.parseBoolean(value); specificBuilder.setActive(!v); return true; } }); appliers.put("id", new Applier(){ @Override public boolean apply(String value) { Id tracksId = Id.create(Long.parseLong(value)); specificBuilder.setTracksId(tracksId); return true; } }); appliers.put("updated-at", new Applier(){ @Override public boolean apply(String value) { long date; try { date = DateUtils.parseIso8601Date(value); specificBuilder.setModifiedDate(date); return true; } catch (ParseException e) { return false; } } }); } @Override protected EntityBuilder<Context> createBuilder() { return specificBuilder = Context.newBuilder(); } }