package com.robotoworks.example.ghissues.net; import com.robotoworks.mechanoid.net.JsonEntityWriterProvider; import com.robotoworks.mechanoid.net.JsonEntityWriter; import java.util.HashMap; public class DefaultGithubClientWriterProvider implements JsonEntityWriterProvider { private HashMap<Class<?>, JsonEntityWriter<?>> mMap = new HashMap<Class<?>, JsonEntityWriter<?>>(); public DefaultGithubClientWriterProvider(){ registerWriters(mMap); } @SuppressWarnings("unchecked") @Override public <T, R extends JsonEntityWriter<T>> R get(Class<T> entityType) { return (R) mMap.get(entityType); } protected void registerWriters(HashMap<Class<?>, JsonEntityWriter<?>> map) { map.put(Issue.class, new IssueWriter(this)); map.put(User.class, new UserWriter(this)); map.put(Label.class, new LabelWriter(this)); } }