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.Achievement;
import org.krakenapps.socialweb.facebook.jsonobject.fieldelement.From;
import org.krakenapps.socialweb.facebook.jsonobject.fieldelement.Like;
public class User implements FacebookGraphObject{
private String id;
private String name;
private String first_name;
private String middle_name;
private String last_name;
private String gender;
private String locale;
private ArrayList<From> languages;
private String link;
private String username;
private String third_party_id;
private boolean installed;
private int timezone;
private String updated_time;
private boolean verified;
private String bio;
private String birthday;
private ArrayList<Cover> cover;
private ArrayList<Devices> devices;
//education
private String email;
private From hometown;
private ArrayList<String> interested_in;
private From location;
private String political;
//payment_pricepoints;
private ArrayList<From> favorite_athletes;
private ArrayList<From> favorite_team;
private String picture;
private String quotes;
private String relationship_status;
private String religion;
private String security_settings;
private From significant_other;
//video_upload_limits;
private String website;
private ArrayList<Work> work;
private FbConnection fbConnection;
public User(){
fbConnection = new FbConnection();
}
private class FbConnection{
public String CONN_accounts = "accounts";
public String CONN_achievements = "achievements";
public String CONN_activities = "activities";
public String CONN_albums = "albums";
public String CONN_apprequests = "apprequests";
public String CONN_books = "books";
public String CONN_checkins = "checkins";
public String CONN_events = "events";
public String CONN_family = "family";
public String CONN_feed = "feed";
public String CONN_friendlists = "friendlists";
public String CONN_friendrequests = "friendrequests";
public String CONN_friends = "friends";
public String CONN_games = "games";
public String CONN_home = "home";
public String CONN_inbox = "inbox";
public String CONN_interests = "interests";
public String CONN_likes = "likes";
public String CONN_locations = "locations";
public String CONN_movies = "movies";
public String CONN_music = "music";
public String CONN_mutualfriends = "mutualfriends";
public String CONN_notes = "notes";
public String CONN_notifications = "notifications";
public String CONN_outbox = "outbox";
public String CONN_payments = "payments";
public String CONN_permissions = "permissions";
public String CONN_photos = "photos";
public String CONN_photos_uploaded = "photos/uploaded";
public String CONN_picture = "picture";
public String CONN_pokes = "pokes";
public String CONN_posts = "posts";
public String CONN_questions = "questions";
public String CONN_scores = "scores";
public String CONN_sharedposts = "sharedposts";
public String CONN_statuses = "statuses";
public String CONN_subscribedto = "subscribedto";
public String CONN_subscribers = "subscribers";
public String CONN_tagged = "tagged";
public String CONN_television = "television";
public String CONN_updates = "updates";
public String CONN_videos = "videos";
//acounts
private Achievement achievements;
//activities;
Album albums;
//apprequest -> message:String data:String
//Book
Checkin checkins;
Event events;
//Family
//feed
FriendList friendlists;
// FriendRequest
Friends friends;
//games
Group groups;
//Home
//inbox
//interest
Like likes;
//Links
//location
//Movies
//Music
//MutualFriends
Note notes;
//Notification
//outbox
//payments
//permissions
Photo photos;
//Photos uploaded
//picture/
//pokes
Post posts;
Question questions;
//scores
//sharedposts
//statuses
ArrayList<From> subscribedto;
ArrayList<From> subscrivers;
//tagged
//television
//updates
//videos
public FbConnection(){
}
}
/*
private class Installed{
private String type;
private String id;
private String installed;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getInstalled() {
return installed;
}
public void setInstalled(String installed) {
this.installed = installed;
}
}*/
private class Cover{
private String id;
private String source;
private String offset_y;
Cover(){
}
Cover(String id , String source, String offset_y){
this.id = id;
this.source = source;
this.offset_y = offset_y;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
public String getOffset_y() {
return offset_y;
}
public void setOffset_y(String offset_y) {
this.offset_y = offset_y;
}
}
private class Devices{
private String os;
private String hardware;
Devices(){
}
Devices(String os, String hardward){
this.os = os;
this.hardware = hardware;
}
public String getOs() {
return os;
}
public void setOs(String os) {
this.os = os;
}
public String getHardware() {
return hardware;
}
public void setHardware(String hardware) {
this.hardware = hardware;
}
}
private class Education{
private String year;
private String type;
private School school;
private class School{
private String name;
private String id;
private String type;
private String year;
private String degree;
private ArrayList<String> concentration;
private ArrayList<String> classes;
private ArrayList<String> with;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getYear() {
return year;
}
public void setYear(String year) {
this.year = year;
}
public String getDegree() {
return degree;
}
public void setDegree(String degree) {
this.degree = degree;
}
public ArrayList<String> getConcentration() {
return concentration;
}
public void setConcentration(ArrayList<String> concentration) {
this.concentration = concentration;
}
public ArrayList<String> getClasses() {
return classes;
}
public void setClasses(ArrayList<String> classes) {
this.classes = classes;
}
public ArrayList<String> getWith() {
return with;
}
public void setWith(ArrayList<String> with) {
this.with = with;
}
}
public String getYear() {
return year;
}
public void setYear(String year) {
this.year = year;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public School getSchool() {
return school;
}
public void setSchool(School school) {
this.school = school;
}
}
private class Work{
private String employer;
private String location;
private String position;
private String start_date;
private String end_date;
public String getEmployer() {
return employer;
}
public void setEmployer(String employer) {
this.employer = employer;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public String getPosition() {
return position;
}
public void setPosition(String position) {
this.position = position;
}
public String getStart_date() {
return start_date;
}
public void setStart_date(String start_date) {
this.start_date = start_date;
}
public String getEnd_date() {
return end_date;
}
public void setEnd_date(String end_date) {
this.end_date = end_date;
}
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getFirst_name() {
return first_name;
}
public void setFirst_name(String first_name) {
this.first_name = first_name;
}
public String getMiddle_name() {
return middle_name;
}
public void setMiddle_name(String middle_name) {
this.middle_name = middle_name;
}
public String getLast_name() {
return last_name;
}
public void setLast_name(String last_name) {
this.last_name = last_name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getLocale() {
return locale;
}
public void setLocale(String locale) {
this.locale = locale;
}
public ArrayList<From> getLanguages() {
return languages;
}
public void setLanguages(ArrayList<From> languages) {
this.languages = languages;
}
public String getLink() {
return link;
}
public void setLink(String link) {
this.link = link;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getThird_party_id() {
return third_party_id;
}
public void setThird_party_id(String third_party_id) {
this.third_party_id = third_party_id;
}
public int getTimezone() {
return timezone;
}
public void setTimezone(int timezone) {
this.timezone = timezone;
}
public String getUpdated_time() {
return updated_time;
}
public void setUpdated_time(String updated_time) {
this.updated_time = updated_time;
}
public boolean isVerified() {
return verified;
}
public void setVerified(boolean verified) {
this.verified = verified;
}
public String getBio() {
return bio;
}
public void setBio(String bio) {
this.bio = bio;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
public ArrayList<Cover> getCover() {
return cover;
}
public void setCover(ArrayList<Cover> cover) {
this.cover = cover;
}
public ArrayList<Devices> getDevices() {
return devices;
}
public void setDevices(ArrayList<Devices> devices) {
this.devices = devices;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public From getHometown() {
return hometown;
}
public void setHometown(From hometown) {
this.hometown = hometown;
}
public ArrayList<String> getInterested_in() {
return interested_in;
}
public void setInterested_in(ArrayList<String> interested_in) {
this.interested_in = interested_in;
}
public From getLocation() {
return location;
}
public void setLocation(From location) {
this.location = location;
}
public String getPolitical() {
return political;
}
public void setPolitical(String political) {
this.political = political;
}
public ArrayList<From> getFavorite_athletes() {
return favorite_athletes;
}
public void setFavorite_athletes(ArrayList<From> favorite_athletes) {
this.favorite_athletes = favorite_athletes;
}
public ArrayList<From> getFavorite_team() {
return favorite_team;
}
public void setFavorite_team(ArrayList<From> favorite_team) {
this.favorite_team = favorite_team;
}
public String getPicture() {
return picture;
}
public void setPicture(String picture) {
this.picture = picture;
}
public String getQuotes() {
return quotes;
}
public void setQuotes(String quotes) {
this.quotes = quotes;
}
public String getRelationship_status() {
return relationship_status;
}
public void setRelationship_status(String relationship_status) {
this.relationship_status = relationship_status;
}
public String getReligion() {
return religion;
}
public void setReligion(String religion) {
this.religion = religion;
}
public String getSecurity_settings() {
return security_settings;
}
public void setSecurity_settings(String security_settings) {
this.security_settings = security_settings;
}
public From getSignificant_other() {
return significant_other;
}
public void setSignificant_other(From significant_other) {
this.significant_other = significant_other;
}
public String getWebsite() {
return website;
}
public void setWebsite(String website) {
this.website = website;
}
public ArrayList<Work> getWork() {
return work;
}
public void setWork(ArrayList<Work> work) {
this.work = work;
}
public FbConnection getFbConnection() {
return fbConnection;
}
public void setFbConnection(FbConnection fbConnection) {
this.fbConnection = fbConnection;
}
@Override
public int parseJson(JSONObject json) {
try {
id = json.getString("id");
name = json.getString("name");
first_name = json.getString("first_name");
middle_name = json.getString("middle_name");
last_name = json.getString("last_name");
gender = json.getString("gender");
locale = json.getString("locale");
languages = new ArrayList<From>();
JSONObject languageObject = json.getJSONObject("languages");
JSONArray languageArray = languageObject.getJSONArray("data");
for(int i=0; i<languageArray.length(); i++){
languages.add(new From(languageArray.getJSONObject(i).getString("id") , languageArray.getJSONObject(i).getString("name")));
}
link = json.getString("link");
username = json.getString("username");
//age_range
third_party_id = json.getString("third_party_id");
installed = json.getBoolean("installed");
timezone = json.getInt("timezone");
updated_time = json.getString("updated_time");
verified = json.getBoolean("verfied");
bio = json.getString("bio");
birthday = json.getString("birthday");
cover = new ArrayList<Cover>();
JSONObject coverObject = json.getJSONObject("cover");
JSONArray coverArray = json.getJSONArray("data");
for(int i=0; i<coverArray.length() ; i++){
cover.add(new Cover(coverArray.getJSONObject(i).getString("id"), coverArray.getJSONObject(i).getString("source") , coverArray.getJSONObject(i).getString("offset_y")));
}
devices = new ArrayList<Devices>();
JSONObject deviceObject = json.getJSONObject("devices");
JSONArray deviceArray = json.getJSONArray("data");
for(int i=0; i<deviceArray.length() ; i++){
devices.add(new Devices(deviceArray.getJSONObject(i).getString("os"), deviceArray.getJSONObject(i).getString("hardward")));
}
email = json.getString("email");
JSONObject hometownObject = json.getJSONObject("hometown");
hometown = new From(hometownObject.getString("id"), hometownObject.getString("name"));
/*interested_in = new ArrayList<String>();
JSONObject interestedObject = json.getJSONObject("interested_in");
JSONArray interestedArray = interestedObject.getJSONArray("data");
for(int i =0; i<interestedArray.length() ; i++){
interested_in.add(interestedArray.getString(i));
}*/ // need to confirm how it looks like in object
JSONObject locationObject = json.getJSONObject("location");
location = new From(locationObject.getString("id"), locationObject.getString("name"));
political = json.getString("political");
//paytment_pricepoints
favorite_athletes = new ArrayList<From>();
JSONObject athleteObject = json.getJSONObject("favorite_athletes");
JSONArray athleteArray = athleteObject.getJSONArray("data");
for(int i = 0 ; i< athleteArray.length(); i++){
favorite_athletes.add( new From(athleteArray.getJSONObject(i).getString("id"), athleteArray.getJSONObject(i).getString("id")));
}
favorite_team = new ArrayList<From>();
JSONObject teamObject = json.getJSONObject("favorite_team");
JSONArray teamArray = athleteObject.getJSONArray("data");
for(int i = 0 ; i< teamArray.length(); i++){
favorite_team.add( new From(teamArray.getJSONObject(i).getString("id"), teamArray.getJSONObject(i).getString("id")));
}
picture = json.getString("picture");
quotes = json.getString("quptes");
relationship_status = json.getString("relationship_status");
religion = json.getString("religion");
//security setting
JSONObject significantObject = json.getJSONObject("significant_other");
significant_other = new From(significantObject.getString("id"), significantObject.getString("name"));
website = json.getString("website");
//work
} 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;
}
}