Coverage Report - org.apache.shindig.social.opensocial.model.Person
 
Classes in this File Line Coverage Branch Coverage Complexity
Person
N/A
N/A
0
Person$Field
100%
68/68
N/A
0
Person$Gender
100%
3/3
N/A
0
 
 1  
 /*
 2  
  * Licensed to the Apache Software Foundation (ASF) under one
 3  
  * or more contributor license agreements. See the NOTICE file
 4  
  * distributed with this work for additional information
 5  
  * regarding copyright ownership. The ASF licenses this file
 6  
  * to you under the Apache License, Version 2.0 (the
 7  
  * "License"); you may not use this file except in compliance
 8  
  * with the License. You may obtain a copy of the License at
 9  
  *
 10  
  *     http://www.apache.org/licenses/LICENSE-2.0
 11  
  *
 12  
  * Unless required by applicable law or agreed to in writing,
 13  
  * software distributed under the License is distributed on an
 14  
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 15  
  * KIND, either express or implied. See the License for the
 16  
  * specific language governing permissions and limitations under the License.
 17  
  */
 18  
 package org.apache.shindig.social.opensocial.model;
 19  
 
 20  
 import org.apache.shindig.social.core.model.PersonImpl;
 21  
 
 22  
 import com.google.common.collect.EnumHashBiMap;
 23  
 import com.google.common.collect.ImmutableSet;
 24  
 import com.google.common.collect.Maps;
 25  
 import com.google.common.base.Functions;
 26  
 
 27  
 import com.google.inject.ImplementedBy;
 28  
 
 29  
 import java.util.Date;
 30  
 import java.util.EnumSet;
 31  
 import java.util.List;
 32  
 import java.util.Map;
 33  
 import java.util.Set;
 34  
 
 35  
 /**
 36  
  * see http://code.google.com/apis/opensocial/docs/0.8/reference/#opensocial.Person.Field for all
 37  
  * field meanings. All fields are represented in the js api at this time except for lastUpdated.
 38  
  * This field is currently only in the RESTful spec.
 39  
  *
 40  
  */
 41  
 @ImplementedBy(PersonImpl.class)
 42  
 @Exportablebean
 43  
 public interface Person {
 44  
   /**
 45  
    * The type of a profile url when represented as a list field.
 46  
    */
 47  
   String PROFILE_URL_TYPE = "profile";
 48  
 
 49  
   /**
 50  
    * The type of thumbnail photo types when represented as list fields.
 51  
    */
 52  
   String THUMBNAIL_PHOTO_TYPE = "thumbnail";
 53  
 
 54  
   /**
 55  
    * The display name for the user.
 56  
    * @return the display name
 57  
    */
 58  
   String getDisplayName();
 59  
 
 60  
   /**
 61  
    * Set the display name.
 62  
    * @param displayName the new display name.
 63  
    */
 64  
   void setDisplayName(String displayName);
 65  
 
 66  
   /**
 67  
    * Enumeration of genders.
 68  
    */
 69  4
   public enum Gender {
 70  
     /**
 71  
      * Female.
 72  
      */
 73  1
     female,
 74  
     /**
 75  
      * Male.
 76  
      */
 77  1
     male
 78  
   }
 79  
 
 80  
   /**
 81  
    * The fields that represent the person object ion json form.
 82  
    */
 83  2
   public static enum Field {
 84  
     /** the json field for aboutMe. */
 85  1
     ABOUT_ME("aboutMe"),
 86  
     /** the json field for accounts. */
 87  1
     ACCOUNTS("accounts"),
 88  
     /** the json field for activities. */
 89  1
     ACTIVITIES("activities"),
 90  
     /** the json field for addresses. */
 91  1
     ADDRESSES("addresses"),
 92  
     /** the json field for age. */
 93  1
     AGE("age"),
 94  
     /** the json field for bodyType. */
 95  1
     BODY_TYPE("bodyType"),
 96  
     /** the json field for books. */
 97  1
     BOOKS("books"),
 98  
     /** the json field for cars. */
 99  1
     CARS("cars"),
 100  
     /** the json field for children. */
 101  1
     CHILDREN("children"),
 102  
     /** the json field for currentLocation. */
 103  1
     CURRENT_LOCATION("currentLocation"),
 104  
     /** the json field for birthday. */
 105  1
     BIRTHDAY("birthday"),
 106  
     /** the json field for display name. */
 107  1
     DISPLAY_NAME("displayName"), /** Needed to support the RESTful api. */
 108  
     /** the json field for drinker. */
 109  1
     DRINKER("drinker"),
 110  
     /** the json field for emails. */
 111  1
     EMAILS("emails"),
 112  
     /** the json field for ethnicity. */
 113  1
     ETHNICITY("ethnicity"),
 114  
     /** the json field for fashion. */
 115  1
     FASHION("fashion"),
 116  
     /** the json field for food. */
 117  1
     FOOD("food"),
 118  
     /** the json field for gender. */
 119  1
     GENDER("gender"),
 120  
     /** the json field for happiestWhen. */
 121  1
     HAPPIEST_WHEN("happiestWhen"),
 122  
     /** the json field for hasApp. */
 123  1
     HAS_APP("hasApp"),
 124  
     /** the json field for heroes. */
 125  1
     HEROES("heroes"),
 126  
     /** the json field for humor. */
 127  1
     HUMOR("humor"),
 128  
     /** the json field for id. */
 129  1
     ID("id"),
 130  
     /** the json field for IM accounts. */
 131  1
     IMS("ims"),
 132  
     /** the json field for interests. */
 133  1
     INTERESTS("interests"),
 134  
     /** the json field for jobInterests. */
 135  1
     JOB_INTERESTS("jobInterests"),
 136  
     /** the json field for languagesSpoken. */
 137  1
     LANGUAGES_SPOKEN("languagesSpoken"),
 138  
     /** the json field for updated. */
 139  1
     LAST_UPDATED("updated"), /** Needed to support the RESTful api. */
 140  
     /** the json field for livingArrangement. */
 141  1
     LIVING_ARRANGEMENT("livingArrangement"),
 142  
     /** the json field for lookingFor. */
 143  1
     LOOKING_FOR("lookingFor"),
 144  
     /** the json field for movies. */
 145  1
     MOVIES("movies"),
 146  
     /** the json field for music. */
 147  1
     MUSIC("music"),
 148  
     /** the json field for name. */
 149  1
     NAME("name"),
 150  
     /** the json field for networkPresence. */
 151  1
     NETWORKPRESENCE("networkPresence"),
 152  
     /** the json field for nickname. */
 153  1
     NICKNAME("nickname"),
 154  
     /** the json field for organiztions. */
 155  1
     ORGANIZATIONS("organizations"),
 156  
     /** the json field for pets. */
 157  1
     PETS("pets"),
 158  
     /** the json field for phoneNumbers. */
 159  1
     PHONE_NUMBERS("phoneNumbers"),
 160  
     /** the json field for photos. */
 161  1
     PHOTOS("photos"),
 162  
     /** the json field for politicalViews. */
 163  1
     POLITICAL_VIEWS("politicalViews"),
 164  
     /** the json field for profileSong. */
 165  1
     PROFILE_SONG("profileSong"),
 166  
     /** the json field for profileUrl. */
 167  1
     PROFILE_URL("profileUrl"),
 168  
     /** the json field for profileVideo. */
 169  1
     PROFILE_VIDEO("profileVideo"),
 170  
     /** the json field for quotes. */
 171  1
     QUOTES("quotes"),
 172  
     /** the json field for relationshipStatus. */
 173  1
     RELATIONSHIP_STATUS("relationshipStatus"),
 174  
     /** the json field for religion. */
 175  1
     RELIGION("religion"),
 176  
     /** the json field for romance. */
 177  1
     ROMANCE("romance"),
 178  
     /** the json field for scaredOf. */
 179  1
     SCARED_OF("scaredOf"),
 180  
     /** the json field for sexualOrientation. */
 181  1
     SEXUAL_ORIENTATION("sexualOrientation"),
 182  
     /** the json field for smoker. */
 183  1
     SMOKER("smoker"),
 184  
     /** the json field for sports. */
 185  1
     SPORTS("sports"),
 186  
     /** the json field for status. */
 187  1
     STATUS("status"),
 188  
     /** the json field for tags. */
 189  1
     TAGS("tags"),
 190  
     /** the json field for thumbnailUrl. */
 191  1
     THUMBNAIL_URL("thumbnailUrl"),
 192  
     /** the json field for utcOffset. */
 193  1
     UTC_OFFSET("utcOffset"),
 194  
     /** the json field for turnOffs. */
 195  1
     TURN_OFFS("turnOffs"),
 196  
     /** the json field for turnOns. */
 197  1
     TURN_ONS("turnOns"),
 198  
     /** the json field for tvShows. */
 199  1
     TV_SHOWS("tvShows"),
 200  
     /** the json field for urls. */
 201  1
     URLS("urls");
 202  
 
 203  
     /**
 204  
      * a Map to convert json string to Field representations.
 205  
      */
 206  
   
 207  1
     private static final Map<String,Field> lookup = Maps.uniqueIndex(EnumSet.allOf(Field.class), Functions.TO_STRING);
 208  
 
 209  
     /**
 210  
      * The json field that the instance represents.
 211  
      */
 212  
     private final String urlString;
 213  
 
 214  
     /**
 215  
      * The set of all fields.
 216  
      */
 217  1
     public static final Set<String> ALL_FIELDS = lookup.keySet();
 218  
 
 219  
     /**
 220  
      * The set of default fields returned fields.
 221  
      */
 222  1
     public static final Set<String> DEFAULT_FIELDS = ImmutableSet.of(
 223  
         ID.toString(), 
 224  
         NAME.toString(),
 225  
         THUMBNAIL_URL.toString());
 226  
 
 227  
     /**
 228  
      * create a field base on the a json element.
 229  
      *
 230  
      * @param urlString the name of the element
 231  
      */
 232  59
     private Field(String urlString) {
 233  59
       this.urlString = urlString;
 234  59
     }
 235  
 
 236  
     /**
 237  
      * emit the field as a json element.
 238  
      *
 239  
      * @return the field name
 240  
      */
 241  
     @Override
 242  
     public String toString() {
 243  260
       return this.urlString;
 244  
     }
 245  
 
 246  
     /**
 247  
      * Converts from a url string (usually passed in the fields= parameter) into the
 248  
      * corresponding field enum.
 249  
      * @param urlString The string to translate.
 250  
      * @return The corresponding person field.
 251  
      */
 252  
     public static Person.Field fromUrlString(String urlString) {
 253  3
       return lookup.get(urlString);
 254  
     }
 255  
   }
 256  
 
 257  
   /**
 258  
    * Get a general statement about the person, specified as a string. Container support for this
 259  
    * field is OPTIONAL.
 260  
    *
 261  
    * @return the value of aboutMe
 262  
    */
 263  
   String getAboutMe();
 264  
 
 265  
   /**
 266  
    * Set a general statement about the person, specified as a string. Container support for this
 267  
    * field is OPTIONAL.
 268  
    *
 269  
    * @param aboutMe the value of aboutMe
 270  
    */
 271  
   void setAboutMe(String aboutMe);
 272  
 
 273  
   /**
 274  
    * Get the list of online accounts held by this person.
 275  
    * @return a list of Account objects
 276  
    */
 277  
   List<Account> getAccounts();
 278  
 
 279  
   /**
 280  
    * Set the list of online accounts held by this person.
 281  
    * @param accounts a list of Account objects
 282  
    */
 283  
   void setAccounts(List<Account> accounts);
 284  
 
 285  
   /**
 286  
    * Get the person's favorite activities, specified as an List of strings. Container support for
 287  
    * this field is OPTIONAL.
 288  
    *
 289  
    * @return list of activities.
 290  
    */
 291  
   List<String> getActivities();
 292  
 
 293  
   /**
 294  
    * Set the person's favorite activities, specified as an List of strings.
 295  
    *
 296  
    * @param activities a list of activities
 297  
    */
 298  
   void setActivities(List<String> activities);
 299  
 
 300  
   /**
 301  
    * Get addresses associated with the person, specified as an List of Address objects. Container
 302  
    * support for this field is OPTIONAL.
 303  
    *
 304  
    * @return a List of address objects
 305  
    */
 306  
   List<Address> getAddresses();
 307  
 
 308  
   /**
 309  
    * Set addresses associated with the person, specified as an List of Address objects. Container
 310  
    * support for this field is OPTIONAL.
 311  
    *
 312  
    * @param addresses a list of address objects
 313  
    */
 314  
   void setAddresses(List<Address> addresses);
 315  
 
 316  
   /**
 317  
    * Get the person's age, specified as a number. Container support for this field is OPTIONAL.
 318  
    *
 319  
    * @return the persons age
 320  
    */
 321  
   Integer getAge();
 322  
 
 323  
   /**
 324  
    * Set the person's age, specified as a number. Container support for this field is OPTIONAL.
 325  
    *
 326  
    * @param age the persons age
 327  
    */
 328  
   void setAge(Integer age);
 329  
 
 330  
   /**
 331  
    * Get the person's date of birth, specified as a {@link Date} object. Container support for this
 332  
    * field is OPTIONAL.
 333  
    *
 334  
    * @return the person's data of birth
 335  
    */
 336  
   Date getBirthday();
 337  
 
 338  
   /**
 339  
    * Set the person's date of birth, specified as a {@link Date} object. Container support for this
 340  
    * field is OPTIONAL.
 341  
    *
 342  
    * @param birthday the person's data of birth
 343  
    */
 344  
   void setBirthday(Date birthday);
 345  
   
 346  
   /**
 347  
    * Get the person's body characteristics, specified as an BodyType. Container support for this
 348  
    * field is OPTIONAL.
 349  
    *
 350  
    * @return the BodyType
 351  
    */
 352  
   BodyType getBodyType();
 353  
 
 354  
   /**
 355  
    * Set the person's body characteristics, specified as an BodyType. Container support for this
 356  
    * field is OPTIONAL.
 357  
    *
 358  
    * @param bodyType the person's BodyType
 359  
    */
 360  
   void setBodyType(BodyType bodyType);
 361  
 
 362  
   /**
 363  
    * Get the person's favorite books, specified as an List of strings. Container support for this
 364  
    * field is OPTIONAL.
 365  
    *
 366  
    * @return list of books as strings
 367  
    */
 368  
   List<String> getBooks();
 369  
 
 370  
   /**
 371  
    * Set the person's favorite books, specified as an List of strings. Container support for this
 372  
    * field is OPTIONAL.
 373  
    *
 374  
    * @param books a list of the person's books
 375  
    */
 376  
   void setBooks(List<String> books);
 377  
 
 378  
   /**
 379  
    * Get the person's favorite cars, specified as an List of strings. Container support for this
 380  
    * field is OPTIONAL.
 381  
    *
 382  
    * @return the persons favorite cars
 383  
    */
 384  
   List<String> getCars();
 385  
 
 386  
   /**
 387  
    * Set the person's favorite cars, specified as an List of strings. Container support for this
 388  
    * field is OPTIONAL.
 389  
    *
 390  
    * @param cars a list of the persons favorite cars
 391  
    */
 392  
   void setCars(List<String> cars);
 393  
 
 394  
   /**
 395  
    * Get a description of the person's children, specified as a string. Container support for this
 396  
    * field is OPTIONAL.
 397  
    *
 398  
    * @return the persons children
 399  
    */
 400  
   String getChildren();
 401  
 
 402  
   /**
 403  
    * Set a description of the person's children, specified as a string. Container support for this
 404  
    * field is OPTIONAL.
 405  
    *
 406  
    * @param children the persons children
 407  
    */
 408  
   void setChildren(String children);
 409  
 
 410  
   /**
 411  
    * Get the person's current location, specified as an {@link Address}. Container support for this
 412  
    * field is OPTIONAL.
 413  
    *
 414  
    * @return the persons current location
 415  
    */
 416  
   Address getCurrentLocation();
 417  
 
 418  
   /**
 419  
    * Set the person's current location, specified as an {@link Address}. Container support for this
 420  
    * field is OPTIONAL.
 421  
    *
 422  
    * @param currentLocation the persons current location
 423  
    */
 424  
   void setCurrentLocation(Address currentLocation);
 425  
 
 426  
 
 427  
   /**
 428  
    * Get the person's drinking status, specified as an {@link Enum} with the enum's key referencing
 429  
    * {@link Enum.Drinker}. Container support for this field is OPTIONAL.
 430  
    *
 431  
    * @return the persons drinking status
 432  
    */
 433  
   Enum<Enum.Drinker> getDrinker();
 434  
 
 435  
   /**
 436  
    * Get the person's drinking status, specified as an {@link Enum} with the enum's key referencing
 437  
    * {@link Enum.Drinker}. Container support for this field is OPTIONAL.
 438  
    *
 439  
    * @param newDrinker the persons drinking status
 440  
    */
 441  
   void setDrinker(Enum<Enum.Drinker> newDrinker);
 442  
 
 443  
   /**
 444  
    * Get the person's Emails associated with the person.
 445  
    * Container support for this field is OPTIONAL.
 446  
    *
 447  
    * @return a list of the person's emails
 448  
    */
 449  
   List<ListField> getEmails();
 450  
 
 451  
   /**
 452  
    * Set the person's Emails associated with the person.
 453  
    * Container support for this field is OPTIONAL.
 454  
    *
 455  
    * @param emails a list of the person's emails
 456  
    */
 457  
   void setEmails(List<ListField> emails);
 458  
 
 459  
   /**
 460  
    * Get the person's ethnicity, specified as a string. Container support for this field is
 461  
    * OPTIONAL.
 462  
    *
 463  
    * @return the person's ethnicity
 464  
    */
 465  
   String getEthnicity();
 466  
 
 467  
   /**
 468  
    * Set the person's ethnicity, specified as a string. Container support for this field is
 469  
    * OPTIONAL.
 470  
    *
 471  
    * @param ethnicity the person's ethnicity
 472  
    */
 473  
   void setEthnicity(String ethnicity);
 474  
 
 475  
   /**
 476  
    * Get the person's thoughts on fashion, specified as a string. Container support for this field
 477  
    * is OPTIONAL.
 478  
    *
 479  
    * @return the person's thoughts on fashion
 480  
    */
 481  
   String getFashion();
 482  
 
 483  
   /**
 484  
    * Set the person's thoughts on fashion, specified as a string. Container support for this field
 485  
    * is OPTIONAL.
 486  
    *
 487  
    * @param fashion the person's thoughts on fashion
 488  
    */
 489  
   void setFashion(String fashion);
 490  
 
 491  
   /**
 492  
    * Get the person's favorite food, specified as an List of strings. Container support for this
 493  
    * field is OPTIONAL.
 494  
    *
 495  
    * @return the person's favorite food
 496  
    */
 497  
   List<String> getFood();
 498  
 
 499  
   /**
 500  
    * Set the person's favorite food, specified as an List of strings. Container support for this
 501  
    * field is OPTIONAL.
 502  
    *
 503  
    * @param food the person's favorite food
 504  
    */
 505  
   void setFood(List<String> food);
 506  
 
 507  
   /**
 508  
    * Get a person's gender, specified as an {@link Gender}.
 509  
    *
 510  
    * @return the person's gender
 511  
    */
 512  
   Gender getGender();
 513  
 
 514  
   /**
 515  
    * Set a person's gender, specified as an {@link Gender}.
 516  
    *
 517  
    * @param newGender the person's gender
 518  
    */
 519  
   void setGender(Gender newGender);
 520  
 
 521  
   /**
 522  
    * Get a description of when the person is happiest, specified as a string. Container support for
 523  
    * this field is OPTIONAL.
 524  
    *
 525  
    * @return a description of when the person is happiest
 526  
    */
 527  
   String getHappiestWhen();
 528  
 
 529  
   /**
 530  
    * Set a description of when the person is happiest, specified as a string. Container support for
 531  
    * this field is OPTIONAL.
 532  
    *
 533  
    * @param happiestWhen a description of when the person is happiest
 534  
    */
 535  
   void setHappiestWhen(String happiestWhen);
 536  
 
 537  
   /**
 538  
    * Get if the person has used the current app. Container support for this field is OPTIONAL.
 539  
    * Has app needs to take account of the context of the application that is performing the
 540  
    * query on this person object.
 541  
    * @return true the current app has been used
 542  
    */
 543  
   Boolean getHasApp();
 544  
 
 545  
   /**
 546  
    * Set if the person has used the current app. Container support for this field is OPTIONAL.
 547  
    *
 548  
    * @param hasApp set true the current app has been used
 549  
    */
 550  
   void setHasApp(Boolean hasApp);
 551  
 
 552  
   /**
 553  
    * Get a person's favorite heroes, specified as an Array of strings. Container support for this
 554  
    * field is OPTIONAL.
 555  
    *
 556  
    * @return a list of the person's favorite heroes
 557  
    */
 558  
   List<String> getHeroes();
 559  
 
 560  
   /**
 561  
    * Set a person's favorite heroes, specified as an Array of strings. Container support for this
 562  
    * field is OPTIONAL.
 563  
    *
 564  
    * @param heroes a list of the person's favorite heroes
 565  
    */
 566  
   void setHeroes(List<String> heroes);
 567  
 
 568  
   /**
 569  
    * Get the person's thoughts on humor, specified as a string. Container support for this field is
 570  
    * OPTIONAL.
 571  
    *
 572  
    * @return the person's thoughts on humor
 573  
    */
 574  
   String getHumor();
 575  
 
 576  
   /**
 577  
    * Set the person's thoughts on humor, specified as a string. Container support for this field is
 578  
    * OPTIONAL.
 579  
    *
 580  
    * @param humor the person's thoughts on humor
 581  
    */
 582  
   void setHumor(String humor);
 583  
 
 584  
   /**
 585  
    * Get A string ID that can be permanently associated with this person. Container support for this
 586  
    * field is REQUIRED.
 587  
    *
 588  
    * @return the permanent ID of the person
 589  
    */
 590  
   String getId();
 591  
 
 592  
   /**
 593  
    * Set A string ID that can be permanently associated with this person. Container support for this
 594  
    * field is REQUIRED.
 595  
    *
 596  
    * @param id the permanent ID of the person
 597  
    */
 598  
   void setId(String id);
 599  
 
 600  
   /**
 601  
    * Get a list of Instant messaging address for this Person. No official canonicalization rules
 602  
    * exist for all instant messaging addresses, but Service Providers SHOULD remove all whitespace
 603  
    * and convert the address to lowercase, if this is appropriate for the service this IM address is
 604  
    * used for. Instead of the standard Canonical Values for type, this field defines the following
 605  
    * Canonical Values to represent currently popular IM services: aim, gtalk, icq, xmpp, msn, skype,
 606  
    * qq, and yahoo.
 607  
    *
 608  
    * @return A list of IM addresses
 609  
    */
 610  
   List<ListField> getIms();
 611  
 
 612  
   /**
 613  
    * Set a list of Instant messaging address for this Person. No official canonicalization rules
 614  
    * exist for all instant messaging addresses, but Service Providers SHOULD remove all whitespace
 615  
    * and convert the address to lowercase, if this is appropriate for the service this IM address is
 616  
    * used for. Instead of the standard Canonical Values for type, this field defines the following
 617  
    * Canonical Values to represent currently popular IM services: aim, gtalk, icq, xmpp, msn, skype,
 618  
    * qq, and yahoo.
 619  
    *
 620  
    * @param ims a list ListFields representing IM addresses.
 621  
    */
 622  
   void setIms(List<ListField> ims);
 623  
 
 624  
   /**
 625  
    * Get the person's interests, hobbies or passions, specified as an List of strings. Container
 626  
    * support for this field is OPTIONAL.
 627  
    *
 628  
    * @return the person's interests, hobbies or passions
 629  
    */
 630  
   List<String> getInterests();
 631  
 
 632  
   /**
 633  
    * Set the person's interests, hobbies or passions, specified as an List of strings. Container
 634  
    * support for this field is OPTIONAL.
 635  
    *
 636  
    * @param interests the person's interests, hobbies or passions
 637  
    */
 638  
   void setInterests(List<String> interests);
 639  
 
 640  
   /**
 641  
    * Get the Person's favorite jobs, or job interests and skills, specified as a string. Container
 642  
    * support for this field is OPTIONAL
 643  
    *
 644  
    * @return the Person's favorite jobs, or job interests and skills
 645  
    */
 646  
   String getJobInterests();
 647  
 
 648  
   /**
 649  
    * Set the Person's favorite jobs, or job interests and skills, specified as a string. Container
 650  
    * support for this field is OPTIONAL
 651  
    *
 652  
    * @param jobInterests the Person's favorite jobs, or job interests and skills
 653  
    */
 654  
   void setJobInterests(String jobInterests);
 655  
 
 656  
   /**
 657  
    * Get a List of the languages that the person speaks as ISO 639-1 codes, specified as an List of
 658  
    * strings. Container support for this field is OPTIONAL.
 659  
    *
 660  
    * @return a List of the languages that the person speaks
 661  
    */
 662  
   List<String> getLanguagesSpoken();
 663  
 
 664  
   /**
 665  
    * Set a List of the languages that the person speaks as ISO 639-1 codes, specified as an List of
 666  
    * strings. Container support for this field is OPTIONAL.
 667  
    *
 668  
    * @param languagesSpoken a List of the languages that the person speaks
 669  
    */
 670  
   void setLanguagesSpoken(List<String> languagesSpoken);
 671  
 
 672  
   /**
 673  
    * The time this person was last updated.
 674  
    *
 675  
    * @return the last update time
 676  
    */
 677  
   Date getUpdated();
 678  
 
 679  
   /**
 680  
    * Set the time this record was last updated.
 681  
    *
 682  
    * @param updated the last update time
 683  
    */
 684  
   void setUpdated(Date updated);
 685  
 
 686  
   /**
 687  
    * Get a description of the person's living arrangement, specified as a string. Container support
 688  
    * for this field is OPTIONAL.
 689  
    *
 690  
    * @return a description of the person's living arrangement
 691  
    */
 692  
   String getLivingArrangement();
 693  
 
 694  
   /**
 695  
    * Set a description of the person's living arrangement, specified as a string. Container support
 696  
    * for this field is OPTIONAL.
 697  
    *
 698  
    * @param livingArrangement a description of the person's living arrangement
 699  
    */
 700  
   void setLivingArrangement(String livingArrangement);
 701  
 
 702  
   /**
 703  
    * Get a person's statement about who or what they are looking for, or what they are interested in
 704  
    * meeting people for. Specified as an List of {@link Enum} with the enum's key referencing
 705  
    * {@link Enum.LookingFor} Container support for this field is OPTIONAL.
 706  
    *
 707  
    * @return person's statement about who or what they are looking for
 708  
    */
 709  
   List<Enum<Enum.LookingFor>> getLookingFor();
 710  
 
 711  
   /**
 712  
    * Get a person's statement about who or what they are looking for, or what they are interested in
 713  
    * meeting people for. Specified as an List of {@link Enum} with the enum's key referencing
 714  
    * {@link Enum.LookingFor} Container support for this field is OPTIONAL.
 715  
    *
 716  
    * @param lookingFor person's statement about who or what they are looking for
 717  
    */
 718  
   void setLookingFor(List<Enum<Enum.LookingFor>> lookingFor);
 719  
 
 720  
   /**
 721  
    * Get the Person's favorite movies, specified as an List of strings. Container support for this
 722  
    * field is OPTIONAL.
 723  
    *
 724  
    * @return the Person's favorite movies
 725  
    */
 726  
   List<String> getMovies();
 727  
 
 728  
   /**
 729  
    * Set the Person's favorite movies, specified as an List of strings. Container support for this
 730  
    * field is OPTIONAL.
 731  
    *
 732  
    * @param movies the Person's favorite movies
 733  
    */
 734  
   void setMovies(List<String> movies);
 735  
 
 736  
   /**
 737  
    * Get the Person's favorite music, specified as an List of strings Container support for this
 738  
    * field is OPTIONAL.
 739  
    *
 740  
    * @return Person's favorite music
 741  
    */
 742  
   List<String> getMusic();
 743  
 
 744  
   /**
 745  
    * Set the Person's favorite music, specified as an List of strings Container support for this
 746  
    * field is OPTIONAL.
 747  
    *
 748  
    * @param music Person's favorite music
 749  
    */
 750  
   void setMusic(List<String> music);
 751  
 
 752  
   /**
 753  
    * Get the person's name Container support for this field is REQUIRED.
 754  
    *
 755  
    * @return the person's name
 756  
    */
 757  
   Name getName();
 758  
 
 759  
   /**
 760  
    * Set the person's name Container support for this field is REQUIRED.
 761  
    *
 762  
    * @param name the person's name
 763  
    */
 764  
   void setName(Name name);
 765  
 
 766  
   /**
 767  
    * Get the person's current network status. Specified as an {@link Enum} with the enum's key
 768  
    * referencing {@link Enum.Presence}. Container support for this field is OPTIONAL.
 769  
    *
 770  
    * @return the person's current network status
 771  
    */
 772  
   Enum<Enum.NetworkPresence> getNetworkPresence();
 773  
 
 774  
   /**
 775  
    * Set the person's current network status. Specified as an {@link Enum} with the enum's key
 776  
    * referencing {@link Enum.Presence}. Container support for this field is OPTIONAL.
 777  
    *
 778  
    * @param networkPresence the person's current network status
 779  
    */
 780  
   void setNetworkPresence(Enum<Enum.NetworkPresence> networkPresence);
 781  
 
 782  
   /**
 783  
    * Get the person's nickname. Container support for this field is REQUIRED.
 784  
    *
 785  
    * @return the person's nickname.
 786  
    */
 787  
   String getNickname();
 788  
 
 789  
   /**
 790  
    * Set the the person's nickname. Container support for this field is REQUIRED.
 791  
    *
 792  
    * @param nickname the person's nickname.
 793  
    */
 794  
   void setNickname(String nickname);
 795  
 
 796  
   /**
 797  
    * Get a list of current or past organizational affiliations of this Person.
 798  
    * @return a list of Organization objects
 799  
    */
 800  
   List<Organization> getOrganizations();
 801  
 
 802  
   /**
 803  
    * Set a list of current or past organizational affiliations of this Person.
 804  
    * @param organizations a list of Organisation objects
 805  
    */
 806  
   void setOrganizations(List<Organization> organizations);
 807  
 
 808  
   /**
 809  
    * Get a description of the person's pets Container support for this field is OPTIONAL.
 810  
    *
 811  
    * @return a description of the person's pets
 812  
    */
 813  
   String getPets();
 814  
 
 815  
   /**
 816  
    * Set a description of the person's pets Container support for this field is OPTIONAL.
 817  
    *
 818  
    * @param pets a description of the person's pets
 819  
    */
 820  
   void setPets(String pets);
 821  
 
 822  
   /**
 823  
    * Get the Phone numbers associated with the person.
 824  
    *
 825  
    * @return the Phone numbers associated with the person
 826  
    */
 827  
   List<ListField> getPhoneNumbers();
 828  
 
 829  
   /**
 830  
    * Set the Phone numbers associated with the person.
 831  
    *
 832  
    * @param phoneNumbers the Phone numbers associated with the person
 833  
    */
 834  
   void setPhoneNumbers(List<ListField> phoneNumbers);
 835  
 
 836  
   /**
 837  
    * URL of a photo of this person. The value SHOULD be a canonicalized URL, and MUST point to an
 838  
    * actual image file (e.g. a GIF, JPEG, or PNG image file) rather than to a web page containing an
 839  
    * image. Service Providers MAY return the same image at different sizes, though it is recognized
 840  
    * that no standard for describing images of various sizes currently exists. Note that this field
 841  
    * SHOULD NOT be used to send down arbitrary photos taken by this user, but specifically profile
 842  
    * photos of the contact suitable for display when describing the contact.
 843  
    *
 844  
    * @return a list of Photos
 845  
    */
 846  
   List<ListField> getPhotos();
 847  
 
 848  
   /**
 849  
    * Set a list of Photos for the person.
 850  
    * @see Person.getPhotos()
 851  
    * @param photos a list of photos.
 852  
    */
 853  
   void setPhotos(List<ListField> photos);
 854  
 
 855  
   /**
 856  
    * Get the Person's political views, specified as a string. Container support for this field is
 857  
    * OPTIONAL.
 858  
    *
 859  
    * @return the Person's political views
 860  
    */
 861  
   String getPoliticalViews();
 862  
 
 863  
   /**
 864  
    * Set the Person's political views, specified as a string. Container support for this field is
 865  
    * OPTIONAL.
 866  
    *
 867  
    * @param politicalViews the Person's political views
 868  
    */
 869  
   void setPoliticalViews(String politicalViews);
 870  
 
 871  
   /**
 872  
    * Get the Person's profile song, specified as an {@link Url}. Container support for this field
 873  
    * is OPTIONAL.
 874  
    *
 875  
    * @return the Person's profile song
 876  
    */
 877  
   Url getProfileSong();
 878  
 
 879  
   /**
 880  
    * Set the Person's profile song, specified as an {@link Url}. Container support for this field
 881  
    * is OPTIONAL.
 882  
    *
 883  
    * @param profileSong the Person's profile song
 884  
    */
 885  
   void setProfileSong(Url profileSong);
 886  
 
 887  
   /**
 888  
    * Get the Person's profile video. Container support for this field is OPTIONAL.
 889  
    *
 890  
    * @return the Person's profile video
 891  
    */
 892  
   Url getProfileVideo();
 893  
 
 894  
   /**
 895  
    * Set the Person's profile video. Container support for this field is OPTIONAL.
 896  
    *
 897  
    * @param profileVideo the Person's profile video
 898  
    */
 899  
   void setProfileVideo(Url profileVideo);
 900  
 
 901  
   /**
 902  
    * Get the person's favorite quotes Container support for this field is OPTIONAL.
 903  
    *
 904  
    * @return the person's favorite quotes
 905  
    */
 906  
   List<String> getQuotes();
 907  
 
 908  
   /**
 909  
    * Set the person's favorite quotes. Container support for this field is OPTIONAL.
 910  
    *
 911  
    * @param quotes the person's favorite quotes
 912  
    */
 913  
   void setQuotes(List<String> quotes);
 914  
 
 915  
   /**
 916  
    * Get the person's relationship status. Container support for this field is OPTIONAL.
 917  
    *
 918  
    * @return the person's relationship status
 919  
    */
 920  
   String getRelationshipStatus();
 921  
 
 922  
   /**
 923  
    * Set the person's relationship status. Container support for this field is OPTIONAL.
 924  
    *
 925  
    * @param relationshipStatus the person's relationship status
 926  
    */
 927  
   void setRelationshipStatus(String relationshipStatus);
 928  
 
 929  
   /**
 930  
    * Get the person's relgion or religious views. Container support for this field is OPTIONAL.
 931  
    *
 932  
    * @return the person's relgion or religious views
 933  
    */
 934  
   String getReligion();
 935  
 
 936  
   /**
 937  
    * Set the person's relgion or religious views. Container support for this field is OPTIONAL.
 938  
    *
 939  
    * @param religion the person's relgion or religious views
 940  
    */
 941  
   void setReligion(String religion);
 942  
 
 943  
   /**
 944  
    * Get the person's comments about romance. Container support for this field is OPTIONAL.
 945  
    *
 946  
    * @return the person's comments about romance,
 947  
    */
 948  
   String getRomance();
 949  
 
 950  
   /**
 951  
    * Set a the person's comments about romance, Container support for this field is OPTIONAL.
 952  
    *
 953  
    * @param romance the person's comments about romance,
 954  
    */
 955  
   void setRomance(String romance);
 956  
 
 957  
   /**
 958  
    * Get what the person is scared of Container support for this field is OPTIONAL.
 959  
    *
 960  
    * @return what the person is scared of
 961  
    */
 962  
   String getScaredOf();
 963  
 
 964  
   /**
 965  
    * Set what the person is scared of Container support for this field is OPTIONAL.
 966  
    *
 967  
    * @param scaredOf what the person is scared of
 968  
    */
 969  
   void setScaredOf(String scaredOf);
 970  
 
 971  
   /**
 972  
    * Get the person's sexual orientation. Container support for this field is OPTIONAL.
 973  
    *
 974  
    * @return the person's sexual orientation
 975  
    */
 976  
   String getSexualOrientation();
 977  
 
 978  
   /**
 979  
    * Set the person's sexual orientation Container support for this field is OPTIONAL.
 980  
    *
 981  
    * @param sexualOrientation the person's sexual orientation
 982  
    */
 983  
   void setSexualOrientation(String sexualOrientation);
 984  
 
 985  
   /**
 986  
    * Get the person's smoking status. Container support for this field is OPTIONAL.
 987  
    *
 988  
    * @return the person's smoking status
 989  
    */
 990  
   Enum<Enum.Smoker> getSmoker();
 991  
 
 992  
   /**
 993  
    * Set the person's smoking status. Container support for this field is OPTIONAL.
 994  
    *
 995  
    * @param newSmoker the person's smoking status
 996  
    */
 997  
   void setSmoker(Enum<Enum.Smoker> newSmoker);
 998  
 
 999  
   /**
 1000  
    * Get the person's favorite sports. Container support for this field is OPTIONAL.
 1001  
    *
 1002  
    * @return the person's favorite sports
 1003  
    */
 1004  
   List<String> getSports();
 1005  
 
 1006  
   /**
 1007  
    * Set the person's favorite sports. Container support for this field is OPTIONAL.
 1008  
    *
 1009  
    * @param sports the person's favorite sports
 1010  
    */
 1011  
   void setSports(List<String> sports);
 1012  
 
 1013  
   /**
 1014  
    * Get the person's status, headline or shoutout. Container support for this field is OPTIONAL.
 1015  
    *
 1016  
    * @return the person's status, headline or shoutout
 1017  
    */
 1018  
   String getStatus();
 1019  
 
 1020  
   /**
 1021  
    * Set the person's status, headline or shoutout. Container support for this field is OPTIONAL.
 1022  
    *
 1023  
    * @param status the person's status, headline or shoutout
 1024  
    */
 1025  
   void setStatus(String status);
 1026  
 
 1027  
   /**
 1028  
    * Get arbitrary tags about the person. Container support for this field is OPTIONAL.
 1029  
    *
 1030  
    * @return arbitrary tags about the person.
 1031  
    */
 1032  
   List<String> getTags();
 1033  
 
 1034  
   /**
 1035  
    * Set arbitrary tags about the person. Container support for this field is OPTIONAL.
 1036  
    *
 1037  
    * @param tags arbitrary tags about the person.
 1038  
    */
 1039  
   void setTags(List<String> tags);
 1040  
 
 1041  
   /**
 1042  
    * Get the Person's time zone, specified as the difference in minutes between Greenwich Mean Time
 1043  
    * (GMT) and the user's local time. Container support for this field is OPTIONAL.
 1044  
    *
 1045  
    * @return the Person's time zone
 1046  
    */
 1047  
   Long getUtcOffset();
 1048  
 
 1049  
   /**
 1050  
    * Set the Person's time zone, specified as the difference in minutes between Greenwich Mean Time
 1051  
    * (GMT) and the user's local time. Container support for this field is OPTIONAL.
 1052  
    *
 1053  
    * @param utcOffset the Person's time zone
 1054  
    */
 1055  
   void setUtcOffset(Long utcOffset);
 1056  
 
 1057  
   /**
 1058  
    * Get the person's turn offs. Container support for this field is OPTIONAL.
 1059  
    *
 1060  
    * @return the person's turn offs
 1061  
    */
 1062  
   List<String> getTurnOffs();
 1063  
 
 1064  
   /**
 1065  
    * Set the person's turn offs. Container support for this field is OPTIONAL.
 1066  
    *
 1067  
    * @param turnOffs the person's turn offs
 1068  
    */
 1069  
   void setTurnOffs(List<String> turnOffs);
 1070  
 
 1071  
   /**
 1072  
    * Get the person's turn ons. Container support for this field is OPTIONAL.
 1073  
    *
 1074  
    * @return the person's turn ons
 1075  
    */
 1076  
   List<String> getTurnOns();
 1077  
 
 1078  
   /**
 1079  
    * Set the person's turn ons. Container support for this field is OPTIONAL.
 1080  
    *
 1081  
    * @param turnOns the person's turn ons
 1082  
    */
 1083  
   void setTurnOns(List<String> turnOns);
 1084  
 
 1085  
   /**
 1086  
    * Get the person's favorite TV shows. Container support for this field is OPTIONAL.
 1087  
    *
 1088  
    * @return the person's favorite TV shows.
 1089  
    */
 1090  
   List<String> getTvShows();
 1091  
 
 1092  
   /**
 1093  
    * Set the person's favorite TV shows. Container support for this field is OPTIONAL.
 1094  
    *
 1095  
    * @param tvShows the person's favorite TV shows.
 1096  
    */
 1097  
   void setTvShows(List<String> tvShows);
 1098  
 
 1099  
   /**
 1100  
    * Get the URLs related to the person, their webpages, or feeds Container support for this field
 1101  
    * is OPTIONAL.
 1102  
    *
 1103  
    * @return the URLs related to the person, their webpages, or feeds
 1104  
    */
 1105  
   List<Url> getUrls();
 1106  
 
 1107  
   /**
 1108  
    * Set the URLs related to the person, their webpages, or feeds Container support for this field
 1109  
    * is OPTIONAL.
 1110  
    *
 1111  
    * @param urls the URLs related to the person, their webpages, or feeds
 1112  
    */
 1113  
   void setUrls(List<Url> urls);
 1114  
 
 1115  
   /**
 1116  
    * @return true if this person object represents the owner of the current page.
 1117  
    */
 1118  
   boolean getIsOwner();
 1119  
 
 1120  
   /**
 1121  
    * Set the owner flag.
 1122  
    * @param isOwner the isOwnerflag
 1123  
    */
 1124  
   void setIsOwner(boolean isOwner);
 1125  
 
 1126  
   /**
 1127  
    * Returns true if this person object represents the currently logged in user.
 1128  
    * @return true if the person accessing this object is a viewer.
 1129  
    */
 1130  
   boolean getIsViewer();
 1131  
 
 1132  
   /**
 1133  
    * Returns true if this person object represents the currently logged in user.
 1134  
    * @param isViewer the isViewer Flag
 1135  
    */
 1136  
   void setIsViewer(boolean isViewer);
 1137  
 
 1138  
 
 1139  
   // Proxied fields
 1140  
 
 1141  
   /**
 1142  
    * Get the person's profile URL. This URL must be fully qualified. Relative URLs will not work in
 1143  
    * gadgets. This field MUST be stored in the urls list with a type of "profile".
 1144  
    *
 1145  
    * Container support for this field is OPTIONAL.
 1146  
    *
 1147  
    * @return the person's profile URL
 1148  
    */
 1149  
   String getProfileUrl();
 1150  
 
 1151  
   /**
 1152  
    * Set the person's profile URL. This URL must be fully qualified. Relative URLs will not work in
 1153  
    * gadgets. This field MUST be stored in the urls list with a type of "profile".
 1154  
    *
 1155  
    * Container support for this field is OPTIONAL.
 1156  
    *
 1157  
    * @param profileUrl the person's profile URL
 1158  
    */
 1159  
   void setProfileUrl(String profileUrl);
 1160  
 
 1161  
   /**
 1162  
    * Get the person's photo thumbnail URL, specified as a string. This URL must be fully qualified.
 1163  
    * Relative URLs will not work in gadgets.
 1164  
    * This field MUST be stored in the photos list with a type of "thumbnail".
 1165  
    *
 1166  
    * Container support for this field is OPTIONAL.
 1167  
    *
 1168  
    * @return the person's photo thumbnail URL
 1169  
    */
 1170  
   String getThumbnailUrl();
 1171  
 
 1172  
   /**
 1173  
    * Set the person's photo thumbnail URL, specified as a string. This URL must be fully qualified.
 1174  
    * Relative URLs will not work in gadgets.
 1175  
    * This field MUST be stored in the photos list with a type of "thumbnail".
 1176  
    *
 1177  
    * Container support for this field is OPTIONAL.
 1178  
    *
 1179  
    * @param thumbnailUrl the person's photo thumbnail URL
 1180  
    */
 1181  
   void setThumbnailUrl(String thumbnailUrl);
 1182  
 
 1183  
 }