Package com.avaya.clientservices.contact

## Interface EditableContact

- All Superinterfaces:
    `BaseContact`

      public interface EditableContact
      extends BaseContact

  Mutable contact object which exposes all provided contact details.

  EditableContact can be created by using either `ContactService.createEditableContact()` or `ContactService.createEditableContactFromContact(Contact)`. Second method needs a regular contact as a source for data.

  EditableContact can be used in two contact service methods - `ContactService.addContact(EditableContact, AddContactCompletionHandler)` and `ContactService.updateContact(EditableContact, UpdateContactCompletionHandler)`.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `EditableContactStringField` | `getASCIIAlias()` | The non-localized alias.
    `EditableContactStringField` | `getASCIIDisplayName()` | The non-localized display name.
    `EditableContactStringField` | `getASCIIFirstName()` | The non-localized first name.
    `EditableContactStringField` | `getASCIILastName()` | The non-localized last name.
    `EditableContactStringField` | `getCity()` | The city.
    `EditableContactStringField` | `getCompany()` | The company.
    `java.util.Set<ContactSourceType>` | `getContactSources()` | Returns list of contact sources
    `EditableContactStringField` | `getCountry()` | The country.
    `EditableContactMultiValueField<EditableContactStringField>` | `getCustom1()` | The list of custom1 values.
    `EditableContactMultiValueField<EditableContactStringField>` | `getCustom2()` | The list of custom2 values.
    `EditableContactMultiValueField<EditableContactStringField>` | `getCustom3()` | The list of custom3 values.
    `EditableContactStringField` | `getDepartment()` | The department.
    `EditableContactEmailAddressFieldList` | `getEmailAddresses()` | The list of email addresses.
    `java.util.Map<java.lang.String,​ContactField>` | `getExtraFields()` | Contact extra fields
    `EditableContactIMAddressFieldList` | `getIMAddresses()` | The list of IM addresses.
    `EditableContactStringField` | `getLanguage()` | The language is per contact record.
    `EditableContactStringField` | `getLocation()` | The location.
    `EditableContactStringField` | `getManager()` | The name of a person who is a supervisor.
    `EditableContactStringField` | `getNativeAlias()` | The native alias.
    `EditableContactStringField` | `getNativeDisplayName()` | The native display name.
    `EditableContactStringField` | `getNativeFirstName()` | The native first name.
    `EditableContactStringField` | `getNativeLastName()` | The native last name.
    `EditableContactStringField` | `getNotes()` | The notes field.
    `EditableContactPhoneFieldList` | `getPhoneNumbers()` | The list of phone numbers.
    `byte[]` | `getPictureData()` | The contact picture bytes.
    `EditableContactStringField` | `getPostalCode()` | The postal code.
    `EditableContactDoubleField` | `getRank()` | The rank field defining the contact sorting order.
    `EditableContactStringField` | `getState()` | The state.
    `EditableContactStringField` | `getStreetAddress()` | The street address.
    `EditableContactStringField` | `getTitle()` | The title or company role.
    `java.lang.String` | `getUniqueAddressForMatching()` | The matching/merging address.
    `boolean` | `hasPicture()` | Indicating whether contact has a picture.
    `EditableContactBoolField` | `isBuddy()` | The buddy flag.
    `boolean` | `isContactSavable()` | Returns Contact capabilities to save the current state of the contact 1.
    `EditableContactBoolField` | `isFavorite()` | The favorite flag.
    `EditableContactBoolField` | `isVideoCapable()` | Returns true if contact is video capable.
    `EditableContactBoolField` | `isVIP()` | The VIP flag.
    `void` | `removePictureFromCache()` |
    `void` | `retrievePicture​(ContactCompletionHandler handler)` |

    - ### Methods inherited from interface com.avaya.clientservices.contact.BaseContact

      `canAddEmailAddress, canAddEmailAddress, canAddIMAddress, canAddPhoneNumber, isExtendedContactDetailsAvailable`

- - ### Method Detail

    - #### retrievePicture

          void retrievePicture​(ContactCompletionHandler handler)

    - #### removePictureFromCache

          void removePictureFromCache()

    - #### getASCIILastName

          EditableContactStringField getASCIILastName()

      Description copied from interface: `BaseContact`
      The non-localized last name.
      Specified by:
        `getASCIILastName` in interface `BaseContact`
      Returns:
        Contact string field containing non-localized last name.

    - #### getASCIIFirstName

          EditableContactStringField getASCIIFirstName()

      Description copied from interface: `BaseContact`
      The non-localized first name.
      Specified by:
        `getASCIIFirstName` in interface `BaseContact`
      Returns:
        Contact string field containing non-localized first name.

    - #### getASCIIDisplayName

          EditableContactStringField getASCIIDisplayName()

      Description copied from interface: `BaseContact`
      The non-localized display name.
      Specified by:
        `getASCIIDisplayName` in interface `BaseContact`
      Returns:
        Contact string field containing non-localized display name.

    - #### getASCIIAlias

          EditableContactStringField getASCIIAlias()

      Description copied from interface: `BaseContact`
      The non-localized alias.
      Specified by:
        `getASCIIAlias` in interface `BaseContact`
      Returns:
        Contact string field containing a non-localized alias.

    - #### getNativeLastName

          EditableContactStringField getNativeLastName()

      Description copied from interface: `BaseContact`
      The native last name.
      Specified by:
        `getNativeLastName` in interface `BaseContact`
      Returns:
        Contact string field containing the native last name.

    - #### getNativeFirstName

          EditableContactStringField getNativeFirstName()

      Description copied from interface: `BaseContact`
      The native first name.
      Specified by:
        `getNativeFirstName` in interface `BaseContact`
      Returns:
        Contact string field containing the native first name.

    - #### getNativeDisplayName

          EditableContactStringField getNativeDisplayName()

      Description copied from interface: `BaseContact`
      The native display name.
      Specified by:
        `getNativeDisplayName` in interface `BaseContact`
      Returns:
        Contact string field containing the native display name.

    - #### getNativeAlias

          EditableContactStringField getNativeAlias()

      Description copied from interface: `BaseContact`
      The native alias.
      Specified by:
        `getNativeAlias` in interface `BaseContact`
      Returns:
        Contact string field containing the native alias.

    - #### getLocation

          EditableContactStringField getLocation()

      Description copied from interface: `BaseContact`
      The location.
      Specified by:
        `getLocation` in interface `BaseContact`
      Returns:
        Contact string field containing the location.

    - #### getStreetAddress

          EditableContactStringField getStreetAddress()

      Description copied from interface: `BaseContact`
      The street address.
      Specified by:
        `getStreetAddress` in interface `BaseContact`
      Returns:
        Contact string field containing the street address.

    - #### getCity

          EditableContactStringField getCity()

      Description copied from interface: `BaseContact`
      The city.
      Specified by:
        `getCity` in interface `BaseContact`
      Returns:
        Contact string field containing the city.

    - #### getState

          EditableContactStringField getState()

      Description copied from interface: `BaseContact`
      The state.
      Specified by:
        `getState` in interface `BaseContact`
      Returns:
        Contact string field containing the state.

    - #### getCountry

          EditableContactStringField getCountry()

      Description copied from interface: `BaseContact`
      The country.
      Specified by:
        `getCountry` in interface `BaseContact`
      Returns:
        Contact string field containing the country.

    - #### getPostalCode

          EditableContactStringField getPostalCode()

      Description copied from interface: `BaseContact`
      The postal code.
      Specified by:
        `getPostalCode` in interface `BaseContact`
      Returns:
        Contact string field containing the postal code.

    - #### getCompany

          EditableContactStringField getCompany()

      Description copied from interface: `BaseContact`
      The company.
      Specified by:
        `getCompany` in interface `BaseContact`
      Returns:
        Contact string field containing the company.

    - #### getDepartment

          EditableContactStringField getDepartment()

      Description copied from interface: `BaseContact`
      The department.
      Specified by:
        `getDepartment` in interface `BaseContact`
      Returns:
        Contact string field containing the department.

    - #### getManager

          EditableContactStringField getManager()

      Description copied from interface: `BaseContact`
      The name of a person who is a supervisor.
      Specified by:
        `getManager` in interface `BaseContact`
      Returns:
        Contact string field containing the name of a person who is a supervisor.

    - #### getTitle

          EditableContactStringField getTitle()

      Description copied from interface: `BaseContact`
      The title or company role.
      Specified by:
        `getTitle` in interface `BaseContact`
      Returns:
        Contact string field containing the title or company role.

    - #### getLanguage

          EditableContactStringField getLanguage()

      Description copied from interface: `BaseContact`
      The language is per contact record.
      Specified by:
        `getLanguage` in interface `BaseContact`
      Returns:
        Contact string field containing the language is per contact record.

    - #### getUniqueAddressForMatching

          java.lang.String getUniqueAddressForMatching()

      Description copied from interface: `BaseContact`
      The matching/merging address. This parameter can be used as a record's unique id.
      Specified by:
        `getUniqueAddressForMatching` in interface `BaseContact`
      Returns:
        Contact string field containing the matching/merging address.

    - #### getEmailAddresses

          EditableContactEmailAddressFieldList getEmailAddresses()

      Description copied from interface: `BaseContact`
      The list of email addresses.
      Specified by:
        `getEmailAddresses` in interface `BaseContact`
      Returns:
        Contact multi value field containing list of email addresses.

    - #### getPhoneNumbers

          EditableContactPhoneFieldList getPhoneNumbers()

      Description copied from interface: `BaseContact`
      The list of phone numbers.
      Specified by:
        `getPhoneNumbers` in interface `BaseContact`
      Returns:
        Contact multi value field containing list of phone numbers.

    - #### getIMAddresses

          EditableContactIMAddressFieldList getIMAddresses()

      Description copied from interface: `BaseContact`
      The list of IM addresses.
      Specified by:
        `getIMAddresses` in interface `BaseContact`
      Returns:
        Contact multi value field containing list of IM addresses.

    - #### isBuddy

          EditableContactBoolField isBuddy()

      Description copied from interface: `BaseContact`
      The buddy flag. Used for presence feature purpose.
      Specified by:
        `isBuddy` in interface `BaseContact`
      Returns:
        Contact bool field containing the buddy flag.

    - #### isVIP

          EditableContactBoolField isVIP()

      Description copied from interface: `BaseContact`
      The VIP flag.
      Specified by:
        `isVIP` in interface `BaseContact`
      Returns:
        Contact bool field containing the VIP flag.

    - #### isFavorite

          EditableContactBoolField isFavorite()

      Description copied from interface: `BaseContact`
      The favorite flag.
      Specified by:
        `isFavorite` in interface `BaseContact`
      Returns:
        Contact bool field containing the favorite flag.

    - #### getPictureData

          byte[] getPictureData()

      The contact picture bytes. Picture data can be in jpeg or png format.
      Returns:
        byte array containing the contact picture bytes.

    - #### hasPicture

          boolean hasPicture()

      Indicating whether contact has a picture.
      Returns:
        true if contact has a picture.

    - #### getNotes

          EditableContactStringField getNotes()

      Description copied from interface: `BaseContact`
      The notes field.
      Specified by:
        `getNotes` in interface `BaseContact`
      Returns:
        Contact string field containing the notes field.

    - #### getRank

          EditableContactDoubleField getRank()

      Description copied from interface: `BaseContact`
      The rank field defining the contact sorting order. 0.0 value means "No rank". Higher values are sorted toward top of the list.
      Specified by:
        `getRank` in interface `BaseContact`
      Returns:
        Non-negative double value.

    - #### getCustom1

          EditableContactMultiValueField<EditableContactStringField> getCustom1()

      Description copied from interface: `BaseContact`
      The list of custom1 values.
      Specified by:
        `getCustom1` in interface `BaseContact`
      Returns:
        list of custom1 values.

    - #### getCustom2

          EditableContactMultiValueField<EditableContactStringField> getCustom2()

      Description copied from interface: `BaseContact`
      The list of custom2 values.
      Specified by:
        `getCustom2` in interface `BaseContact`
      Returns:
        list of custom2 values.

    - #### getCustom3

          EditableContactMultiValueField<EditableContactStringField> getCustom3()

      Description copied from interface: `BaseContact`
      The list of custom3 values.
      Specified by:
        `getCustom3` in interface `BaseContact`
      Returns:
        list of custom3 values.

    - #### getExtraFields

          java.util.Map<java.lang.String,​ContactField> getExtraFields()

      Description copied from interface: `BaseContact`
      Contact extra fields
      Specified by:
        `getExtraFields` in interface `BaseContact`
      Returns:
        Map object containing contact extra fields as ContactField with String key. Key values are in `ExtraFieldKeys` class.

    - #### getContactSources

          java.util.Set<ContactSourceType> getContactSources()

      Returns list of contact sources
      Returns:
        list of contact sources

    - #### isContactSavable

          boolean isContactSavable()

      Returns Contact capabilities to save the current state of the contact 1. A savable contact has 1 name (first, last), and at least 1 address (phone number, email). 2. Also cannot break any rules for the maximum number of phone numbers, email addresses etc. for a provider.
      Returns:
        true if it's possible to save Contact with current state of values, false if not.

    - #### isVideoCapable

          EditableContactBoolField isVideoCapable()

      Description copied from interface: `BaseContact`
      Returns true if contact is video capable.
      Specified by:
        `isVideoCapable` in interface `BaseContact`
      Returns:
        true if Contact is video capable.