/* * Copyright (c) 2010, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.wso2.carbon.registry.social.api.people.userprofile; import com.google.common.base.Functions; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Maps; import org.wso2.carbon.registry.social.api.people.userprofile.model.Address; import org.wso2.carbon.registry.social.api.people.userprofile.model.Account; import org.wso2.carbon.registry.social.api.people.userprofile.model.Address; import org.wso2.carbon.registry.social.api.people.userprofile.model.BodyType; import org.wso2.carbon.registry.social.api.people.userprofile.model.Drinker; import org.wso2.carbon.registry.social.api.people.userprofile.model.ListField; import org.wso2.carbon.registry.social.api.people.userprofile.model.LookingFor; import org.wso2.carbon.registry.social.api.people.userprofile.model.Name; import org.wso2.carbon.registry.social.api.people.userprofile.model.NetworkPresence; import org.wso2.carbon.registry.social.api.people.userprofile.model.Organization; import org.wso2.carbon.registry.social.api.people.userprofile.model.Smoker; import org.wso2.carbon.registry.social.api.people.userprofile.model.Url; import java.util.Date; import java.util.EnumSet; import java.util.List; import java.util.Map; import java.util.Set; /** * This bean class represents People/Person */ public interface Person { /** * The type of a profile url when represented as a list field. */ String PROFILE_URL_TYPE = "profile"; /** * The type of thumbnail photo types when represented as list fields. */ String THUMBNAIL_PHOTO_TYPE = "thumbnail"; /** * The display name for the user. * * @return the display name */ String getDisplayName(); /** * Set the display name. * * @param displayName the new display name. */ void setDisplayName(String displayName); /** * Enumeration of genders. */ public enum Gender { /** * Female. */ female, /** * Male. */ male } /** * The fields that represent the person object in json form. */ public static enum Field { /** * the json field for aboutMe. */ ABOUT_ME("aboutMe"), /** * the json field for accounts. */ ACCOUNTS("accounts"), /** * the json field for activities. */ ACTIVITIES("activities"), /** * the json field for addresses. */ ADDRESSES("addresses"), /** * the json field for age. */ AGE("age"), /** * the json field for appData. */ APP_DATA("appData"), /** * the json field for bodyType. */ BODY_TYPE("bodyType"), /** * the json field for books. */ BOOKS("books"), /** * the json field for cars. */ CARS("cars"), /** * the json field for children. */ CHILDREN("children"), /** * the json field for currentLocation. */ CURRENT_LOCATION("currentLocation"), /** * the json field for birthday. */ BIRTHDAY("birthday"), /** * the json field for display name. */ DISPLAY_NAME("displayName"), // Needed to support the RESTful api. /** * the json field for drinker. */ DRINKER("drinker"), /** * the json field for emails. */ EMAILS("emails"), /** * the json field for ethnicity. */ ETHNICITY("ethnicity"), /** * the json field for fashion. */ FASHION("fashion"), /** * the json field for food. */ FOOD("food"), /** * the json field for gender. */ GENDER("gender"), /** * the json field for happiestWhen. */ HAPPIEST_WHEN("happiestWhen"), /** * the json field for hasApp. */ HAS_APP("hasApp"), /** * the json field for heroes. */ HEROES("heroes"), /** * the json field for humor. */ HUMOR("humor"), /** * the json field for id. */ ID("id"), /** * the json field for IM accounts. */ IMS("ims"), /** * the json field for interests. */ INTERESTS("interests"), /** * the json field for jobInterests. */ JOB_INTERESTS("jobInterests"), /** * the json field for languagesSpoken. */ LANGUAGES_SPOKEN("languagesSpoken"), /** * the json field for updated. */ LAST_UPDATED("updated"), //Needed to support the RESTful api. /** * the json field for livingArrangement. */ LIVING_ARRANGEMENT("livingArrangement"), /** * the json field for lookingFor. */ LOOKING_FOR("lookingFor"), /** * the json field for movies. */ MOVIES("movies"), /** * the json field for music. */ MUSIC("music"), /** * the json field for name. */ NAME("name"), /** * the json field for networkPresence. */ NETWORKPRESENCE("networkPresence"), /** * the json field for nickname. */ NICKNAME("nickname"), /** * the json field for organiztions. */ ORGANIZATIONS("organizations"), /** * the json field for pets. */ PETS("pets"), /** * the json field for phoneNumbers. */ PHONE_NUMBERS("phoneNumbers"), /** * the json field for photos. */ PHOTOS("photos"), /** * the json field for politicalViews. */ POLITICAL_VIEWS("politicalViews"), /** * the json field for preferredUsername */ PREFERRED_USERNAME("preferredUsername"), /** * the json field for profileSong. */ PROFILE_SONG("profileSong"), /** * the json field for profileUrl. */ PROFILE_URL("profileUrl"), /** * the json field for profileVideo. */ PROFILE_VIDEO("profileVideo"), /** * the json field for quotes. */ QUOTES("quotes"), /** * the json field for relationshipStatus. */ RELATIONSHIP_STATUS("relationshipStatus"), /** * the json field for religion. */ RELIGION("religion"), /** * the json field for romance. */ ROMANCE("romance"), /** * the json field for scaredOf. */ SCARED_OF("scaredOf"), /** * the json field for sexualOrientation. */ SEXUAL_ORIENTATION("sexualOrientation"), /** * the json field for smoker. */ SMOKER("smoker"), /** * the json field for sports. */ SPORTS("sports"), /** * the json field for status. */ STATUS("status"), /** * the json field for tags. */ TAGS("tags"), /** * the json field for thumbnailUrl. */ THUMBNAIL_URL("thumbnailUrl"), /** * the json field for utcOffset. */ UTC_OFFSET("utcOffset"), /** * the json field for turnOffs. */ TURN_OFFS("turnOffs"), /** * the json field for turnOns. */ TURN_ONS("turnOns"), /** * the json field for tvShows. */ TV_SHOWS("tvShows"), /** * the json field for urls. */ URLS("urls"); /** * a Map to convert json string to Field representations. */ private static final Map<String, Field> lookup = Maps.uniqueIndex(EnumSet.allOf(Field.class), Functions.toStringFunction()); /** * The json field that the instance represents. */ private final String urlString; /** * The set of all fields. */ public static final Set<String> ALL_FIELDS = lookup.keySet(); /** * The set of default fields returned fields. */ public static final Set<String> DEFAULT_FIELDS = ImmutableSet.of( ID.toString(), NAME.toString(), THUMBNAIL_URL.toString()); /** * create a field base on the a json element. * * @param urlString the name of the element */ private Field(String urlString) { this.urlString = urlString; } /** * emit the field as a json element. * * @return the field name */ @Override public String toString() { return this.urlString; } public static Field getField(String jsonString) { return lookup.get(jsonString); } /** * Converts from a url string (usually passed in the fields= parameter) into the * corresponding field enum. * * @param urlString The string to translate. * @return The corresponding person field. */ public static Person.Field fromUrlString(String urlString) { return lookup.get(urlString); } } /** * Get a general statement about the person, specified as a string. Container support for this * field is OPTIONAL. * * @return the value of aboutMe */ String getAboutMe(); /** * Set a general statement about the person, specified as a string. Container support for this * field is OPTIONAL. * * @param aboutMe the value of aboutMe */ void setAboutMe(String aboutMe); /** * Get the list of online accounts held by this person. * * @return a list of Account objects */ List<Account> getAccounts(); /** * Set the list of online accounts held by this person. * * @param accounts a list of Account objects */ void setAccounts(List<Account> accounts); /** * Get the person's favorite activities, specified as an List of strings. Container support for * this field is OPTIONAL. * * @return list of activities. */ List<String> getActivities(); /** * Set the person's favorite activities, specified as an List of strings. * * @param activities a list of activities */ void setActivities(List<String> activities); /** * Get addresses associated with the person, specified as an List of Address objects. Container * support for this field is OPTIONAL. * * @return a List of address objects */ List<Address> getAddresses(); /** * Set addresses associated with the person, specified as an List of Address objects. Container * support for this field is OPTIONAL. * * @param addresses a list of address objects */ void setAddresses(List<Address> addresses); /** * Get the person's age, specified as a number. Container support for this field is OPTIONAL. * * @return the persons age */ Integer getAge(); /** * Set the person's age, specified as a number. Container support for this field is OPTIONAL. * * @param age the persons age */ void setAge(Integer age); /** * Get app data for the person. * * @return the app data, possibly a subset. */ Map<String, ? extends Object> getAppData(); /** * Sets app data for the person. * * @param appData the app data, possibly a subset */ void setAppData(Map<String, ? extends Object> appData); /** * Get the person's date of birth, specified as a {@link Date} object. Container support for this * field is OPTIONAL. * * @return the person's data of birth */ Date getBirthday(); /** * Set the person's date of birth, specified as a {@link Date} object. Container support for this * field is OPTIONAL. * * @param birthday the person's data of birth */ void setBirthday(Date birthday); /** * Get the person's body characteristics, specified as an BodyType. Container support for this * field is OPTIONAL. * * @return the BodyType */ BodyType getBodyType(); /** * Set the person's body characteristics, specified as an BodyType. Container support for this * field is OPTIONAL. * * @param bodyType the person's BodyType */ void setBodyType(BodyType bodyType); /** * Get the person's favorite books, specified as an List of strings. Container support for this * field is OPTIONAL. * * @return list of books as strings */ List<String> getBooks(); /** * Set the person's favorite books, specified as an List of strings. Container support for this * field is OPTIONAL. * * @param books a list of the person's books */ void setBooks(List<String> books); /** * Get the person's favorite cars, specified as an List of strings. Container support for this * field is OPTIONAL. * * @return the persons favorite cars */ List<String> getCars(); /** * Set the person's favorite cars, specified as an List of strings. Container support for this * field is OPTIONAL. * * @param cars a list of the persons favorite cars */ void setCars(List<String> cars); /** * Get a description of the person's children, specified as a string. Container support for this * field is OPTIONAL. * * @return the persons children */ String getChildren(); /** * Set a description of the person's children, specified as a string. Container support for this * field is OPTIONAL. * * @param children the persons children */ void setChildren(String children); /** * Get the person's current location, specified as an {@link Address}. Container support for this * field is OPTIONAL. * * @return the persons current location */ Address getCurrentLocation(); /** * Set the person's current location, specified as an {@link Address}. Container support for this * field is OPTIONAL. * * @param currentLocation the persons current location */ void setCurrentLocation(Address currentLocation); /** * Get the person's drinking status, specified as an {@link Enum} with the enum's key referencing * {@link Drinker}. Container support for this field is OPTIONAL. * * @return the persons drinking status */ Enum<Drinker> getDrinker(); /** * Get the person's drinking status, specified as an {@link Enum} with the enum's key referencing * {@link Drinker}. Container support for this field is OPTIONAL. * * @param newDrinker the persons drinking status */ void setDrinker(Enum<Drinker> newDrinker); /** * Get the person's Emails associated with the person. * Container support for this field is OPTIONAL. * * @return a list of the person's emails */ List<ListField> getEmails(); /** * Set the person's Emails associated with the person. * Container support for this field is OPTIONAL. * * @param emails a list of the person's emails */ void setEmails(List<ListField> emails); /** * Get the person's ethnicity, specified as a string. Container support for this field is * OPTIONAL. * * @return the person's ethnicity */ String getEthnicity(); /** * Set the person's ethnicity, specified as a string. Container support for this field is * OPTIONAL. * * @param ethnicity the person's ethnicity */ void setEthnicity(String ethnicity); /** * Get the person's thoughts on fashion, specified as a string. Container support for this field * is OPTIONAL. * * @return the person's thoughts on fashion */ String getFashion(); /** * Set the person's thoughts on fashion, specified as a string. Container support for this field * is OPTIONAL. * * @param fashion the person's thoughts on fashion */ void setFashion(String fashion); /** * Get the person's favorite food, specified as an List of strings. Container support for this * field is OPTIONAL. * * @return the person's favorite food */ List<String> getFood(); /** * Set the person's favorite food, specified as an List of strings. Container support for this * field is OPTIONAL. * * @param food the person's favorite food */ void setFood(List<String> food); /** * Get a person's gender, specified as an {@link Gender}. * * @return the person's gender */ Gender getGender(); /** * Set a person's gender, specified as an {@link Gender}. * * @param newGender the person's gender */ void setGender(Gender newGender); /** * Get a description of when the person is happiest, specified as a string. Container support for * this field is OPTIONAL. * * @return a description of when the person is happiest */ String getHappiestWhen(); /** * Set a description of when the person is happiest, specified as a string. Container support for * this field is OPTIONAL. * * @param happiestWhen a description of when the person is happiest */ void setHappiestWhen(String happiestWhen); /** * Get if the person has used the current app. Container support for this field is OPTIONAL. * Has app needs to take account of the context of the application that is performing the * query on this person object. * * @return true the current app has been used */ Boolean getHasApp(); /** * Set if the person has used the current app. Container support for this field is OPTIONAL. * * @param hasApp set true the current app has been used */ void setHasApp(Boolean hasApp); /** * Get a person's favorite heroes, specified as an Array of strings. Container support for this * field is OPTIONAL. * * @return a list of the person's favorite heroes */ List<String> getHeroes(); /** * Set a person's favorite heroes, specified as an Array of strings. Container support for this * field is OPTIONAL. * * @param heroes a list of the person's favorite heroes */ void setHeroes(List<String> heroes); /** * Get the person's thoughts on humor, specified as a string. Container support for this field is * OPTIONAL. * * @return the person's thoughts on humor */ String getHumor(); /** * Set the person's thoughts on humor, specified as a string. Container support for this field is * OPTIONAL. * * @param humor the person's thoughts on humor */ void setHumor(String humor); /** * Get A string ID that can be permanently associated with this person. Container support for this * field is REQUIRED. * * @return the permanent ID of the person */ String getId(); /** * Set A string ID that can be permanently associated with this person. Container support for this * field is REQUIRED. * * @param id the permanent ID of the person */ void setId(String id); /** * Get a list of Instant messaging address for this Person. No official canonicalization rules * exist for all instant messaging addresses, but Service Providers SHOULD remove all whitespace * and convert the address to lowercase, if this is appropriate for the service this IM address is * used for. Instead of the standard Canonical Values for type, this field defines the following * Canonical Values to represent currently popular IM services: aim, gtalk, icq, xmpp, msn, skype, * qq, and yahoo. * * @return A list of IM addresses */ List<ListField> getIms(); /** * Set a list of Instant messaging address for this Person. No official canonicalization rules * exist for all instant messaging addresses, but Service Providers SHOULD remove all whitespace * and convert the address to lowercase, if this is appropriate for the service this IM address is * used for. Instead of the standard Canonical Values for type, this field defines the following * Canonical Values to represent currently popular IM services: aim, gtalk, icq, xmpp, msn, skype, * qq, and yahoo. * * @param ims a list ListFields representing IM addresses. */ void setIms(List<ListField> ims); /** * Get the person's interests, hobbies or passions, specified as an List of strings. Container * support for this field is OPTIONAL. * * @return the person's interests, hobbies or passions */ List<String> getInterests(); /** * Set the person's interests, hobbies or passions, specified as an List of strings. Container * support for this field is OPTIONAL. * * @param interests the person's interests, hobbies or passions */ void setInterests(List<String> interests); /** * Get the Person's favorite jobs, or job interests and skills, specified as a string. Container * support for this field is OPTIONAL * * @return the Person's favorite jobs, or job interests and skills */ String getJobInterests(); /** * Set the Person's favorite jobs, or job interests and skills, specified as a string. Container * support for this field is OPTIONAL * * @param jobInterests the Person's favorite jobs, or job interests and skills */ void setJobInterests(String jobInterests); /** * Get a List of the languages that the person speaks as ISO 639-1 codes, specified as an List of * strings. Container support for this field is OPTIONAL. * * @return a List of the languages that the person speaks */ List<String> getLanguagesSpoken(); /** * Set a List of the languages that the person speaks as ISO 639-1 codes, specified as an List of * strings. Container support for this field is OPTIONAL. * * @param languagesSpoken a List of the languages that the person speaks */ void setLanguagesSpoken(List<String> languagesSpoken); /** * The time this person was last updated. * * @return the last update time */ Date getUpdated(); /** * Set the time this record was last updated. * * @param updated the last update time */ void setUpdated(Date updated); /** * Get a description of the person's living arrangement, specified as a string. Container support * for this field is OPTIONAL. * * @return a description of the person's living arrangement */ String getLivingArrangement(); /** * Set a description of the person's living arrangement, specified as a string. Container support * for this field is OPTIONAL. * * @param livingArrangement a description of the person's living arrangement */ void setLivingArrangement(String livingArrangement); /** * Get a person's statement about who or what they are looking for, or what they are interested in * meeting people for. Specified as an List of {@link Enum} with the enum's key referencing * {@link LookingFor} Container support for this field is OPTIONAL. * * @return person's statement about who or what they are looking for */ List<Enum<LookingFor>> getLookingFor(); /** * Get a person's statement about who or what they are looking for, or what they are interested in * meeting people for. Specified as an List of {@link Enum} with the enum's key referencing * {@link LookingFor} Container support for this field is OPTIONAL. * * @param lookingFor person's statement about who or what they are looking for */ void setLookingFor(List<Enum<LookingFor>> lookingFor); /** * Get the Person's favorite movies, specified as an List of strings. Container support for this * field is OPTIONAL. * * @return the Person's favorite movies */ List<String> getMovies(); /** * Set the Person's favorite movies, specified as an List of strings. Container support for this * field is OPTIONAL. * * @param movies the Person's favorite movies */ void setMovies(List<String> movies); /** * Get the Person's favorite music, specified as an List of strings Container support for this * field is OPTIONAL. * * @return Person's favorite music */ List<String> getMusic(); /** * Set the Person's favorite music, specified as an List of strings Container support for this * field is OPTIONAL. * * @param music Person's favorite music */ void setMusic(List<String> music); /** * Get the person's name Container support for this field is REQUIRED. * * @return the person's name */ Name getName(); /** * Set the person's name Container support for this field is REQUIRED. * * @param name the person's name */ void setName(Name name); /** * Get the person's current network status. Specified as an {@link Enum} with the enum's key * referencing {@link NetworkPresence}. Container support for this field is OPTIONAL. * * @return the person's current network status */ Enum<NetworkPresence> getNetworkPresence(); /** * Set the person's current network status. Specified as an {@link Enum} with the enum's key * referencing {@link NetworkPresence}. Container support for this field is OPTIONAL. * * @param networkPresence the person's current network status */ void setNetworkPresence(Enum<NetworkPresence> networkPresence); /** * Get the person's nickname. Container support for this field is REQUIRED. * * @return the person's nickname. */ String getNickname(); /** * Set the the person's nickname. Container support for this field is REQUIRED. * * @param nickname the person's nickname. */ void setNickname(String nickname); /** * Get a list of current or past organizational affiliations of this Person. * * @return a list of Organization objects */ List<Organization> getOrganizations(); /** * Set a list of current or past organizational affiliations of this Person. * * @param organizations a list of Organisation objects */ void setOrganizations(List<Organization> organizations); /** * Get a description of the person's pets Container support for this field is OPTIONAL. * * @return a description of the person's pets */ String getPets(); /** * Set a description of the person's pets Container support for this field is OPTIONAL. * * @param pets a description of the person's pets */ void setPets(String pets); /** * Get the Phone numbers associated with the person. * * @return the Phone numbers associated with the person */ List<ListField> getPhoneNumbers(); /** * Set the Phone numbers associated with the person. * * @param phoneNumbers the Phone numbers associated with the person */ void setPhoneNumbers(List<ListField> phoneNumbers); /** * URL of a photo of this person. The value SHOULD be a canonicalized URL, and MUST point to an * actual image file (e.g. a GIF, JPEG, or PNG image file) rather than to a web page containing an * image. Service Providers MAY return the same image at different sizes, though it is recognized * that no standard for describing images of various sizes currently exists. Note that this field * SHOULD NOT be used to send down arbitrary photos taken by this user, but specifically profile * photos of the contact suitable for display when describing the contact. * * @return a list of Photos */ List<ListField> getPhotos(); /** * Set a list of Photos for the person. * * @param photos a list of photos. * @see Person#getPhotos() */ void setPhotos(List<ListField> photos); /** * Get the Person's political views, specified as a string. Container support for this field is * OPTIONAL. * * @return the Person's political views */ String getPoliticalViews(); /** * Set the Person's political views, specified as a string. Container support for this field is * OPTIONAL. * * @param politicalViews the Person's political views */ void setPoliticalViews(String politicalViews); /** * Get the Person's preferred username, specified as a string. Container support for this field is OPTIONAL * * @return the Person's preferred username */ String getPreferredUsername(); /** * Set the Person's preferred username, specified as a string. Container support for this field is OPTIONAL * * @param preferredString the Person's preferred username */ void setPreferredUsername(String preferredString); /** * Get the Person's profile song, specified as an {@link Url}. Container support for this field * is OPTIONAL. * * @return the Person's profile song */ Url getProfileSong(); /** * Set the Person's profile song, specified as an {@link Url}. Container support for this field * is OPTIONAL. * * @param profileSong the Person's profile song */ void setProfileSong(Url profileSong); /** * Get the Person's profile video. Container support for this field is OPTIONAL. * * @return the Person's profile video */ Url getProfileVideo(); /** * Set the Person's profile video. Container support for this field is OPTIONAL. * * @param profileVideo the Person's profile video */ void setProfileVideo(Url profileVideo); /** * Get the person's favorite quotes Container support for this field is OPTIONAL. * * @return the person's favorite quotes */ List<String> getQuotes(); /** * Set the person's favorite quotes. Container support for this field is OPTIONAL. * * @param quotes the person's favorite quotes */ void setQuotes(List<String> quotes); /** * Get the person's relationship status. Container support for this field is OPTIONAL. * * @return the person's relationship status */ String getRelationshipStatus(); /** * Set the person's relationship status. Container support for this field is OPTIONAL. * * @param relationshipStatus the person's relationship status */ void setRelationshipStatus(String relationshipStatus); /** * Get the person's relgion or religious views. Container support for this field is OPTIONAL. * * @return the person's relgion or religious views */ String getReligion(); /** * Set the person's relgion or religious views. Container support for this field is OPTIONAL. * * @param religion the person's relgion or religious views */ void setReligion(String religion); /** * Get the person's comments about romance. Container support for this field is OPTIONAL. * * @return the person's comments about romance, */ String getRomance(); /** * Set a the person's comments about romance, Container support for this field is OPTIONAL. * * @param romance the person's comments about romance, */ void setRomance(String romance); /** * Get what the person is scared of Container support for this field is OPTIONAL. * * @return what the person is scared of */ String getScaredOf(); /** * Set what the person is scared of Container support for this field is OPTIONAL. * * @param scaredOf what the person is scared of */ void setScaredOf(String scaredOf); /** * Get the person's sexual orientation. Container support for this field is OPTIONAL. * * @return the person's sexual orientation */ String getSexualOrientation(); /** * Set the person's sexual orientation Container support for this field is OPTIONAL. * * @param sexualOrientation the person's sexual orientation */ void setSexualOrientation(String sexualOrientation); /** * Get the person's smoking status. Container support for this field is OPTIONAL. * * @return the person's smoking status */ Enum<Smoker> getSmoker(); /** * Set the person's smoking status. Container support for this field is OPTIONAL. * * @param newSmoker the person's smoking status */ void setSmoker(Enum<Smoker> newSmoker); /** * Get the person's favorite sports. Container support for this field is OPTIONAL. * * @return the person's favorite sports */ List<String> getSports(); /** * Set the person's favorite sports. Container support for this field is OPTIONAL. * * @param sports the person's favorite sports */ void setSports(List<String> sports); /** * Get the person's status, headline or shoutout. Container support for this field is OPTIONAL. * * @return the person's status, headline or shoutout */ String getStatus(); /** * Set the person's status, headline or shoutout. Container support for this field is OPTIONAL. * * @param status the person's status, headline or shoutout */ void setStatus(String status); /** * Get arbitrary tags about the person. Container support for this field is OPTIONAL. * * @return arbitrary tags about the person. */ List<String> getTags(); /** * Set arbitrary tags about the person. Container support for this field is OPTIONAL. * * @param tags arbitrary tags about the person. */ void setTags(List<String> tags); /** * Get the Person's time zone, specified as the difference in minutes between Greenwich Mean Time * (GMT) and the user's local time. Container support for this field is OPTIONAL. * * @return the Person's time zone */ Long getUtcOffset(); /** * Set the Person's time zone, specified as the difference in minutes between Greenwich Mean Time * (GMT) and the user's local time. Container support for this field is OPTIONAL. * * @param utcOffset the Person's time zone */ void setUtcOffset(Long utcOffset); /** * Get the person's turn offs. Container support for this field is OPTIONAL. * * @return the person's turn offs */ List<String> getTurnOffs(); /** * Set the person's turn offs. Container support for this field is OPTIONAL. * * @param turnOffs the person's turn offs */ void setTurnOffs(List<String> turnOffs); /** * Get the person's turn ons. Container support for this field is OPTIONAL. * * @return the person's turn ons */ List<String> getTurnOns(); /** * Set the person's turn ons. Container support for this field is OPTIONAL. * * @param turnOns the person's turn ons */ void setTurnOns(List<String> turnOns); /** * Get the person's favorite TV shows. Container support for this field is OPTIONAL. * * @return the person's favorite TV shows. */ List<String> getTvShows(); /** * Set the person's favorite TV shows. Container support for this field is OPTIONAL. * * @param tvShows the person's favorite TV shows. */ void setTvShows(List<String> tvShows); /** * Get the URLs related to the person, their webpages, or feeds Container support for this field * is OPTIONAL. * * @return the URLs related to the person, their webpages, or feeds */ List<Url> getUrls(); /** * Set the URLs related to the person, their webpages, or feeds Container support for this field * is OPTIONAL. * * @param urls the URLs related to the person, their webpages, or feeds */ void setUrls(List<Url> urls); /** * @return true if this person object represents the owner of the current page. */ boolean getIsOwner(); /** * Set the owner flag. * * @param isOwner the isOwnerflag */ void setIsOwner(boolean isOwner); /** * Returns true if this person object represents the currently logged in user. * * @return true if the person accessing this object is a viewer. */ boolean getIsViewer(); /** * Returns true if this person object represents the currently logged in user. * * @param isViewer the isViewer Flag */ void setIsViewer(boolean isViewer); // Proxied fields /** * Get the person's profile URL. This URL must be fully qualified. Relative URLs will not work in * gadgets. This field MUST be stored in the urls list with a type of "profile". * <p/> * Container support for this field is OPTIONAL. * * @return the person's profile URL */ String getProfileUrl(); /** * Set the person's profile URL. This URL must be fully qualified. Relative URLs will not work in * gadgets. This field MUST be stored in the urls list with a type of "profile". * <p/> * Container support for this field is OPTIONAL. * * @param profileUrl the person's profile URL */ void setProfileUrl(String profileUrl); /** * Get the person's photo thumbnail URL, specified as a string. This URL must be fully qualified. * Relative URLs will not work in gadgets. * This field MUST be stored in the photos list with a type of "thumbnail". * <p/> * Container support for this field is OPTIONAL. * * @return the person's photo thumbnail URL */ String getThumbnailUrl(); /** * Set the person's photo thumbnail URL, specified as a string. This URL must be fully qualified. * Relative URLs will not work in gadgets. * This field MUST be stored in the photos list with a type of "thumbnail". * <p/> * Container support for this field is OPTIONAL. * * @param thumbnailUrl the person's photo thumbnail URL */ void setThumbnailUrl(String thumbnailUrl); }