net.sf.fb4j
Class FacebookObject<K extends FacebookField>

java.lang.Object
  extended by java.util.AbstractMap<K,V>
      extended by java.util.HashMap<K,java.lang.Object>
          extended by net.sf.fb4j.FacebookObject<K>
Type Parameters:
K - the enum representing the field names for this Facebook entity
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.util.Map<K,java.lang.Object>
Direct Known Subclasses:
EducationInfo, Event, EventLocation, EventMembersByStatus, EventMembersByUser, Group, GroupLocation, GroupMembersByRole, GroupMembersByUser, HighSchoolInfo, HometownLocation, Listing, NetworkAffiliation, NotificationsItem, OperatingHours, OutstandingNotifications, Page, PageFun, PageLocation, ParkingOption, PaymentOption, Photo, PhotoAlbum, PhotoTag, Relationship, RestaurantService, RestaurantSpecialty, UserInfo, UserLocation, UserStatus, WorkInfo, WorkLocation

public abstract class FacebookObject<K extends FacebookField>
extends java.util.HashMap<K,java.lang.Object>

Base class for entities accessible through the Facebook API. By default, these are read-only. FacebookObject implements Map to allow easy access (e.g. JSP EL) to properties using their Facebook field name (e.g. work_history). The Map's keys are defined by an enum given in the generic constructor. Its values contain Facebook data mapped to Java objects or arrays by fb4j. Implementations of this class provide bean-style accessors using Java-friendly property names (e.g. workHistory). Note that fields may be null or empty for a number of reasons (access denied by Facebook, not requested in FQL query, etc.) In some cases Facebook's REST server returns empty arrays, sometimes null. It is up to the developer to ensure that requested fields were loaded properly.

Author:
Gino Miceli, Mino Togna
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class java.util.AbstractMap
java.util.AbstractMap.SimpleEntry<K,V>, java.util.AbstractMap.SimpleImmutableEntry<K,V>
 
Field Summary
static java.lang.String DATE_FORMAT
           
static java.util.Date EMPTY_DATE
           
static java.lang.Float EMPTY_FLOAT
           
static java.lang.Integer EMPTY_INTEGER
           
static java.lang.Long EMPTY_LONG
           
 
Constructor Summary
FacebookObject()
           
 
Method Summary
 void clear()
           
protected abstract  K fieldForName(java.lang.String fieldName)
           
 java.lang.Object get(java.lang.Object key)
           
protected  java.lang.Boolean getBoolean(K key)
           
protected  java.util.Date getDate(K key)
           
protected  java.lang.Float getFloat(K key)
           
protected  java.lang.Integer getInteger(K key)
           
protected  java.lang.Long getLong(K key)
           
protected  java.lang.Number getNumber(K key)
           
protected  java.lang.String getString(K key)
           
protected  java.lang.String[] getStringArray(K key)
           
 java.lang.Object put(K key, java.lang.Object value)
           
 void putAll(java.util.Map<? extends K,? extends java.lang.Object> m)
           
protected  java.lang.Object putInternal(K field, java.lang.Object value)
           
protected  java.lang.Object putInternal(java.lang.String fieldName, java.lang.Object value)
           
 java.lang.Object remove(java.lang.Object key)
           
 
Methods inherited from class java.util.HashMap
clone, containsKey, containsValue, entrySet, isEmpty, keySet, size, values
 
Methods inherited from class java.util.AbstractMap
equals, hashCode, toString
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Map
equals, hashCode
 

Field Detail

EMPTY_LONG

public static final java.lang.Long EMPTY_LONG

EMPTY_INTEGER

public static final java.lang.Integer EMPTY_INTEGER

EMPTY_FLOAT

public static final java.lang.Float EMPTY_FLOAT

EMPTY_DATE

public static final java.util.Date EMPTY_DATE

DATE_FORMAT

public static final java.lang.String DATE_FORMAT
See Also:
Constant Field Values
Constructor Detail

FacebookObject

public FacebookObject()
Method Detail

get

public java.lang.Object get(java.lang.Object key)
Specified by:
get in interface java.util.Map<K extends FacebookField,java.lang.Object>
Overrides:
get in class java.util.HashMap<K extends FacebookField,java.lang.Object>

putInternal

protected final java.lang.Object putInternal(java.lang.String fieldName,
                                             java.lang.Object value)

putInternal

protected java.lang.Object putInternal(K field,
                                       java.lang.Object value)

put

public final java.lang.Object put(K key,
                                  java.lang.Object value)
Specified by:
put in interface java.util.Map<K extends FacebookField,java.lang.Object>
Overrides:
put in class java.util.HashMap<K extends FacebookField,java.lang.Object>

clear

public final void clear()
Specified by:
clear in interface java.util.Map<K extends FacebookField,java.lang.Object>
Overrides:
clear in class java.util.HashMap<K extends FacebookField,java.lang.Object>

putAll

public final void putAll(java.util.Map<? extends K,? extends java.lang.Object> m)
Specified by:
putAll in interface java.util.Map<K extends FacebookField,java.lang.Object>
Overrides:
putAll in class java.util.HashMap<K extends FacebookField,java.lang.Object>

remove

public final java.lang.Object remove(java.lang.Object key)
Specified by:
remove in interface java.util.Map<K extends FacebookField,java.lang.Object>
Overrides:
remove in class java.util.HashMap<K extends FacebookField,java.lang.Object>

fieldForName

protected abstract K fieldForName(java.lang.String fieldName)

getString

protected java.lang.String getString(K key)

getBoolean

protected java.lang.Boolean getBoolean(K key)

getStringArray

protected java.lang.String[] getStringArray(K key)

getNumber

protected java.lang.Number getNumber(K key)

getInteger

protected java.lang.Integer getInteger(K key)

getLong

protected java.lang.Long getLong(K key)

getFloat

protected java.lang.Float getFloat(K key)

getDate

protected java.util.Date getDate(K key)


Copyright © 2008. All Rights Reserved.