Smack

org.jivesoftware.smackx.packet
Class VCard

java.lang.Object
  extended by org.jivesoftware.smack.packet.Packet
      extended by org.jivesoftware.smack.packet.IQ
          extended by org.jivesoftware.smackx.packet.VCard

public class VCard
extends IQ

A VCard class for use with the SMACK jabber library.

You should refer to the JEP-54 documentation.

Please note that this class is incomplete but it does provide the most commonly found information in vCards. Also remember that VCard transfer is not a standard, and the protocol may change or be replaced.

Usage:

 

// To save VCard:

VCard vCard = new VCard(); vCard.setFirstName("kir"); vCard.setLastName("max"); vCard.setEmailHome("foo@fee.bar"); vCard.setJabberId("jabber@id.org"); vCard.setOrganization("Jetbrains, s.r.o"); vCard.setNickName("KIR");

vCard.setField("TITLE", "Mr"); vCard.setAddressFieldHome("STREET", "Some street"); vCard.setAddressFieldWork("CTRY", "US"); vCard.setPhoneWork("FAX", "3443233");

vCard.save(connection);

// To load VCard:

VCard vCard = new VCard(); vCard.load(conn); // load own VCard vCard.load(conn, "joe@foo.bar"); // load someone's VCard

Author:
Kirill Maximov (kir@maxkir.com)

Nested Class Summary
 
Nested classes/interfaces inherited from class org.jivesoftware.smack.packet.IQ
IQ.Type
 
Field Summary
 
Fields inherited from class org.jivesoftware.smack.packet.Packet
DEFAULT_LANGUAGE, ID_NOT_AVAILABLE
 
Constructor Summary
VCard()
           
 
Method Summary
 boolean equals(java.lang.Object o)
           
 java.lang.String getAddressFieldHome(java.lang.String addrField)
          Get home address field
 java.lang.String getAddressFieldWork(java.lang.String addrField)
          Get work address field
 byte[] getAvatar()
          Return the byte representation of the avatar(if one exists), otherwise returns null if no avatar could be found.
 java.lang.String getAvatarHash()
          Returns the SHA-1 Hash of the Avatar image.
 java.lang.String getAvatarMimeType()
          Returns the MIME Type of the avatar or null if none is set
static byte[] getBytes(java.net.URL url)
          Common code for getting the bytes of a url.
 java.lang.String getChildElementXML()
          Returns the sub-element XML section of the IQ packet, or null if there isn't one.
 java.lang.String getEmailHome()
           
 java.lang.String getEmailWork()
           
 java.lang.String getField(java.lang.String field)
          Set generic VCard field.
 java.lang.String getFirstName()
           
 java.lang.String getJabberId()
           
 java.lang.String getLastName()
           
 java.lang.String getMiddleName()
           
 java.lang.String getNickName()
           
 java.lang.String getOrganization()
           
 java.lang.String getOrganizationUnit()
           
 java.lang.String getPhoneHome(java.lang.String phoneType)
          Get home phone number
 java.lang.String getPhoneWork(java.lang.String phoneType)
          Get work phone number
 int hashCode()
           
 void load(Connection connection)
          Load VCard information for a connected user.
 void load(Connection connection, java.lang.String user)
          Load VCard information for a given user.
 void removeAvatar()
          Removes the avatar from the vCard This is done by setting the PHOTO value to the empty string as defined in XEP-0153
 void save(Connection connection)
          Save this vCard for the user connected by 'connection'.
 void setAddressFieldHome(java.lang.String addrField, java.lang.String value)
          Set home address field
 void setAddressFieldWork(java.lang.String addrField, java.lang.String value)
          Set work address field
 void setAvatar(byte[] bytes)
          Specify the bytes of the JPEG for the avatar to use.
 void setAvatar(byte[] bytes, java.lang.String mimeType)
          Specify the bytes for the avatar to use as well as the mime type.
 void setAvatar(java.lang.String encodedImage, java.lang.String mimeType)
          Specify the Avatar used for this vCard.
 void setAvatar(java.net.URL avatarURL)
          Set the avatar for the VCard by specifying the url to the image.
 void setEmailHome(java.lang.String email)
           
 void setEmailWork(java.lang.String emailWork)
           
 void setEncodedImage(java.lang.String encodedAvatar)
          Deprecated. Use setAvatar(String, String) instead.
 void setField(java.lang.String field, java.lang.String value)
          Set generic VCard field.
 void setField(java.lang.String field, java.lang.String value, boolean isUnescapable)
          Set generic, unescapable VCard field.
 void setFirstName(java.lang.String firstName)
           
 void setJabberId(java.lang.String jabberId)
           
 void setLastName(java.lang.String lastName)
           
 void setMiddleName(java.lang.String middleName)
           
 void setNickName(java.lang.String nickName)
           
 void setOrganization(java.lang.String organization)
           
 void setOrganizationUnit(java.lang.String organizationUnit)
           
 void setPhoneHome(java.lang.String phoneType, java.lang.String phoneNum)
          Set home phone number
 void setPhoneWork(java.lang.String phoneType, java.lang.String phoneNum)
          Set work phone number
 java.lang.String toString()
           
 
Methods inherited from class org.jivesoftware.smack.packet.IQ
createErrorResponse, createResultIQ, getType, setType, toXML
 
Methods inherited from class org.jivesoftware.smack.packet.Packet
addExtension, addExtensions, deleteProperty, getDefaultLanguage, getError, getExtension, getExtension, getExtensions, getExtensionsXML, getFrom, getPacketID, getProperty, getPropertyNames, getTo, getXmlns, nextID, removeExtension, setDefaultXmlns, setError, setFrom, setPacketID, setProperty, setTo
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

VCard

public VCard()
Method Detail

getField

public java.lang.String getField(java.lang.String field)
Set generic VCard field.

Parameters:
field - value of field. Possible values: NICKNAME, PHOTO, BDAY, JABBERID, MAILER, TZ, GEO, TITLE, ROLE, LOGO, NOTE, PRODID, REV, SORT-STRING, SOUND, UID, URL, DESC.

setField

public void setField(java.lang.String field,
                     java.lang.String value)
Set generic VCard field.

Parameters:
value - value of field
field - field to set. See getField(String)
See Also:
getField(String)

setField

public void setField(java.lang.String field,
                     java.lang.String value,
                     boolean isUnescapable)
Set generic, unescapable VCard field. If unescabale is set to true, XML maybe a part of the value.

Parameters:
value - value of field
field - field to set. See getField(String)
isUnescapable - True if the value should not be escaped, and false if it should.

getFirstName

public java.lang.String getFirstName()

setFirstName

public void setFirstName(java.lang.String firstName)

getLastName

public java.lang.String getLastName()

setLastName

public void setLastName(java.lang.String lastName)

getMiddleName

public java.lang.String getMiddleName()

setMiddleName

public void setMiddleName(java.lang.String middleName)

getNickName

public java.lang.String getNickName()

setNickName

public void setNickName(java.lang.String nickName)

getEmailHome

public java.lang.String getEmailHome()

setEmailHome

public void setEmailHome(java.lang.String email)

getEmailWork

public java.lang.String getEmailWork()

setEmailWork

public void setEmailWork(java.lang.String emailWork)

getJabberId

public java.lang.String getJabberId()

setJabberId

public void setJabberId(java.lang.String jabberId)

getOrganization

public java.lang.String getOrganization()

setOrganization

public void setOrganization(java.lang.String organization)

getOrganizationUnit

public java.lang.String getOrganizationUnit()

setOrganizationUnit

public void setOrganizationUnit(java.lang.String organizationUnit)

getAddressFieldHome

public java.lang.String getAddressFieldHome(java.lang.String addrField)
Get home address field

Parameters:
addrField - one of POSTAL, PARCEL, (DOM | INTL), PREF, POBOX, EXTADR, STREET, LOCALITY, REGION, PCODE, CTRY

setAddressFieldHome

public void setAddressFieldHome(java.lang.String addrField,
                                java.lang.String value)
Set home address field

Parameters:
addrField - one of POSTAL, PARCEL, (DOM | INTL), PREF, POBOX, EXTADR, STREET, LOCALITY, REGION, PCODE, CTRY

getAddressFieldWork

public java.lang.String getAddressFieldWork(java.lang.String addrField)
Get work address field

Parameters:
addrField - one of POSTAL, PARCEL, (DOM | INTL), PREF, POBOX, EXTADR, STREET, LOCALITY, REGION, PCODE, CTRY

setAddressFieldWork

public void setAddressFieldWork(java.lang.String addrField,
                                java.lang.String value)
Set work address field

Parameters:
addrField - one of POSTAL, PARCEL, (DOM | INTL), PREF, POBOX, EXTADR, STREET, LOCALITY, REGION, PCODE, CTRY

setPhoneHome

public void setPhoneHome(java.lang.String phoneType,
                         java.lang.String phoneNum)
Set home phone number

Parameters:
phoneType - one of VOICE, FAX, PAGER, MSG, CELL, VIDEO, BBS, MODEM, ISDN, PCS, PREF
phoneNum - phone number

getPhoneHome

public java.lang.String getPhoneHome(java.lang.String phoneType)
Get home phone number

Parameters:
phoneType - one of VOICE, FAX, PAGER, MSG, CELL, VIDEO, BBS, MODEM, ISDN, PCS, PREF

setPhoneWork

public void setPhoneWork(java.lang.String phoneType,
                         java.lang.String phoneNum)
Set work phone number

Parameters:
phoneType - one of VOICE, FAX, PAGER, MSG, CELL, VIDEO, BBS, MODEM, ISDN, PCS, PREF
phoneNum - phone number

getPhoneWork

public java.lang.String getPhoneWork(java.lang.String phoneType)
Get work phone number

Parameters:
phoneType - one of VOICE, FAX, PAGER, MSG, CELL, VIDEO, BBS, MODEM, ISDN, PCS, PREF

setAvatar

public void setAvatar(java.net.URL avatarURL)
Set the avatar for the VCard by specifying the url to the image.

Parameters:
avatarURL - the url to the image(png,jpeg,gif,bmp)

removeAvatar

public void removeAvatar()
Removes the avatar from the vCard This is done by setting the PHOTO value to the empty string as defined in XEP-0153


setAvatar

public void setAvatar(byte[] bytes)
Specify the bytes of the JPEG for the avatar to use. If bytes is null, then the avatar will be removed. 'image/jpeg' will be used as MIME type.

Parameters:
bytes - the bytes of the avatar, or null to remove the avatar data

setAvatar

public void setAvatar(byte[] bytes,
                      java.lang.String mimeType)
Specify the bytes for the avatar to use as well as the mime type.

Parameters:
bytes - the bytes of the avatar.
mimeType - the mime type of the avatar.

setAvatar

public void setAvatar(java.lang.String encodedImage,
                      java.lang.String mimeType)
Specify the Avatar used for this vCard.

Parameters:
encodedImage - the Base64 encoded image as String
mimeType - the MIME type of the image

setEncodedImage

public void setEncodedImage(java.lang.String encodedAvatar)
Deprecated. Use setAvatar(String, String) instead.

Set the encoded avatar string. This is used by the provider.

Parameters:
encodedAvatar - the encoded avatar string.

getAvatar

public byte[] getAvatar()
Return the byte representation of the avatar(if one exists), otherwise returns null if no avatar could be found. Example 1
 // Load Avatar from VCard
 byte[] avatarBytes = vCard.getAvatar();
 

// To create an ImageIcon for Swing applications ImageIcon icon = new ImageIcon(avatar);

// To create just an image object from the bytes ByteArrayInputStream bais = new ByteArrayInputStream(avatar); try { Image image = ImageIO.read(bais); } catch (IOException e) { e.printStackTrace(); }

Returns:
byte representation of avatar.

getAvatarMimeType

public java.lang.String getAvatarMimeType()
Returns the MIME Type of the avatar or null if none is set

Returns:
the MIME Type of the avatar or null

getBytes

public static byte[] getBytes(java.net.URL url)
                       throws java.io.IOException
Common code for getting the bytes of a url.

Parameters:
url - the url to read.
Throws:
java.io.IOException

getAvatarHash

public java.lang.String getAvatarHash()
Returns the SHA-1 Hash of the Avatar image.

Returns:
the SHA-1 Hash of the Avatar image.

save

public void save(Connection connection)
          throws XMPPException
Save this vCard for the user connected by 'connection'. Connection should be authenticated and not anonymous.

NOTE: the method is asynchronous and does not wait for the returned value.

Parameters:
connection - the Connection to use.
Throws:
XMPPException - thrown if there was an issue setting the VCard in the server.

load

public void load(Connection connection)
          throws XMPPException
Load VCard information for a connected user. Connection should be authenticated and not anonymous.

Throws:
XMPPException

load

public void load(Connection connection,
                 java.lang.String user)
          throws XMPPException
Load VCard information for a given user. Connection should be authenticated and not anonymous.

Throws:
XMPPException

getChildElementXML

public java.lang.String getChildElementXML()
Description copied from class: IQ
Returns the sub-element XML section of the IQ packet, or null if there isn't one. Packet extensions must be included, if any are defined.

Extensions of this class must override this method.

Specified by:
getChildElementXML in class IQ
Returns:
the child element section of the IQ XML.

equals

public boolean equals(java.lang.Object o)
Overrides:
equals in class Packet

hashCode

public int hashCode()
Overrides:
hashCode in class Packet

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

Smack

Copyright © 2003-2007 Jive Software.