package org.krakenapps.socialweb.facebook.jsonobject;
import java.util.ArrayList;
import java.util.Set;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.krakenapps.socialweb.facebook.graphapi.objectcode.Permissions;
import org.krakenapps.socialweb.facebook.jsonobject.fieldelement.From;
public class Thread implements FacebookGraphObject{
private String id;
private String snippet;
private String updated_time;
private int message_count;
private int unread_count;
private ArrayList<String> tags;
private ArrayList<participant> participants;
private ArrayList<participant> former_participants;
private ArrayList<participant> senders;
private ArrayList<Message> messages;
private FbConnection fbConnection;
private class FbConnection{
public String CONN_tags = "tags";
public String CONN_participants = "participants";
public String CONN_former_participants = "former_participants";
public String CONN_senders = "senders";
public String CONN_messages = "messages";
private ArrayList<Message> messages;
private ArrayList<String> tags;
private ArrayList<participant> participants;
private ArrayList<participant> former_participants;
private ArrayList<participant> senders;
public FbConnection(){
messages = null;
participants = null;
former_participants =null;
senders = null;
}
public ArrayList<Message> getMessages() {
return messages;
}
public void setMessages(ArrayList<Message> messages) {
this.messages = messages;
}
public ArrayList<String> getTags() {
return tags;
}
public void setTags(ArrayList<String> tags) {
this.tags = tags;
}
public ArrayList<participant> getParticipants() {
return participants;
}
public void setParticipants(ArrayList<participant> participants) {
this.participants = participants;
}
public ArrayList<participant> getFormer_participants() {
return former_participants;
}
public void setFormer_participants(ArrayList<participant> former_participants) {
this.former_participants = former_participants;
}
public ArrayList<participant> getSenders() {
return senders;
}
public void setSenders(ArrayList<participant> senders) {
this.senders = senders;
}
}
private class participant{
private String id;
private String email;
private String name;
participant(){
}
participant(String id , String email, String name){
this.id = id;
this.email = email;
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public Thread(){
fbConnection = new FbConnection();
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getSnippet() {
return snippet;
}
public void setSnippet(String snippet) {
this.snippet = snippet;
}
public String getUpdated_time() {
return updated_time;
}
public void setUpdated_time(String updated_time) {
this.updated_time = updated_time;
}
public int getMessage_count() {
return message_count;
}
public void setMessage_count(int message_count) {
this.message_count = message_count;
}
public int getUnread_count() {
return unread_count;
}
public void setUnread_count(int unread_count) {
this.unread_count = unread_count;
}
public ArrayList<Message> getMessages() {
return messages;
}
public void setMessages(ArrayList<Message> messages) {
this.messages = messages;
}
public FbConnection getFbConnection() {
return fbConnection;
}
public void setFbConnection(FbConnection fbConnection) {
this.fbConnection = fbConnection;
}
@Override
public int parseJson(JSONObject json) {
try {
id = json.getString("id");
snippet = json.getString("snippet");
updated_time = json.getString("updated_time");
message_count = json.getInt("message_count");
unread_count = json.getInt("unread_count");
tags = new ArrayList<String>();
JSONObject tagObject = json.getJSONObject("tags");
JSONArray tagArray = tagObject.getJSONArray("data");
for(int i = 0 ; i<tagArray.length() ; i++){
tags.add(tagArray.getJSONObject(i).getString("name"));
}
participants = new ArrayList<Thread.participant>();
JSONObject participantsObject = json.getJSONObject("participants");
JSONArray participantsArray = participantsObject.getJSONArray("data");
for(int i =0; i< participantsArray.length(); i++){
participants.add(new participant(participantsArray.getJSONObject(i).getString("id"), participantsArray.getJSONObject(i).getString("email") , participantsArray.getJSONObject(i).getString("name")));
}
former_participants = new ArrayList<Thread.participant>();
JSONObject formerParticipantsObject = json.getJSONObject("former_participants");
JSONArray formerParticipantsArray = formerParticipantsObject.getJSONArray("data");
for(int i =0; i< formerParticipantsArray.length(); i++){
former_participants.add(new participant(formerParticipantsArray.getJSONObject(i).getString("id"), formerParticipantsArray.getJSONObject(i).getString("email") , formerParticipantsArray.getJSONObject(i).getString("name")));
}
senders = new ArrayList<Thread.participant>();
JSONObject sendersObject = json.getJSONObject("senders");
JSONArray sendersArray = sendersObject.getJSONArray("data");
for(int i =0; i< sendersArray.length(); i++){
senders.add(new participant(sendersArray.getJSONObject(i).getString("id"), sendersArray.getJSONObject(i).getString("email") , sendersArray.getJSONObject(i).getString("name")));
}
messages = new ArrayList<Message>();
JSONObject messagesObject = json.getJSONObject("messages");
JSONArray messagesArray = messagesObject.getJSONArray("data");
for(int i =0 ; i< messagesArray.length() ; i++){
Message tmp = new Message();
tmp.parseJson(messagesArray.getJSONObject(i));
messages.add(tmp);
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return 0;
}
/* (non-Javadoc)
* @see org.krakenapps.socialweb.facebook.jsonobject.FacebookGraphObject#parseJson(org.json.JSONObject, java.util.Set)
*/
@Override
public int parseJson(JSONObject json, Set<Permissions> permit) {
// TODO Auto-generated method stub
return 0;
}
}