package com.robotoworks.example.ghissues.net; import com.robotoworks.mechanoid.net.JsonEntityReader; import com.robotoworks.mechanoid.net.JsonEntityReaderProvider; import java.io.IOException; import com.robotoworks.mechanoid.internal.util.JsonReader; import java.util.List; import com.robotoworks.mechanoid.internal.util.JsonToken; import java.util.ArrayList; public class IssueReader extends JsonEntityReader<Issue> { public IssueReader(JsonEntityReaderProvider provider) { super(provider); } public void read(JsonReader reader, Issue entity) throws IOException { reader.beginObject(); while(reader.hasNext()) { String name = reader.nextName(); if(reader.peek() == JsonToken.NULL) { reader.skipValue(); continue; } if(name.equals("url")) { entity.setUrl(reader.nextString()); } else if(name.equals("labels_url")) { entity.setLabelsUrl(reader.nextString()); } else if(name.equals("comments_url")) { entity.setCommentsUrl(reader.nextString()); } else if(name.equals("events_url")) { entity.setEventsUrl(reader.nextString()); } else if(name.equals("html_url")) { entity.setHtmlUrl(reader.nextString()); } else if(name.equals("id")) { entity.setId(reader.nextLong()); } else if(name.equals("number")) { entity.setNumber(reader.nextLong()); } else if(name.equals("title")) { entity.setTitle(reader.nextString()); } else if(name.equals("user")) { User entityMember = new User(); getProvider().get(User.class).read(reader, entityMember); entity.setUser(entityMember); } else if(name.equals("labels")) { List<Label> entityMember = new ArrayList<Label>(); getProvider().get(Label.class).readList(reader, entityMember); entity.setLabels(entityMember); } else if(name.equals("state")) { IssueState entityMember = IssueState.fromValue(reader.nextString()); entity.setState(entityMember); } else if(name.equals("comments")) { entity.setComments(reader.nextInt()); } else if(name.equals("created_at")) { entity.setCreatedAt(reader.nextString()); } else if(name.equals("updated_at")) { entity.setUpdatedAt(reader.nextString()); } else if(name.equals("closed_at")) { entity.setClosedAt(reader.nextString()); } else if(name.equals("body")) { entity.setBody(reader.nextString()); } else { reader.skipValue(); } } reader.endObject(); } public void readList(JsonReader reader, List<Issue> entities) throws IOException { reader.beginArray(); while(reader.hasNext()) { Issue item = new Issue(); read(reader, item); entities.add(item); } reader.endArray(); } }