ezvcard.types
Class LogoType

java.lang.Object
  extended by ezvcard.types.VCardType
      extended by ezvcard.types.BinaryType<ImageTypeParameter>
          extended by ezvcard.types.LogoType
All Implemented Interfaces:
Comparable<VCardType>

public class LogoType
extends BinaryType<ImageTypeParameter>

A company logo.

Adding a logo

 VCard vcard = new VCard();
 
 //URL
 LogoType logo = new LogoType("http://www.company.com/logo.png", ImageTypeParameter.PNG);
 vcard.addLogo(logo);
 
 //binary data
 byte data[] = ...
 logo = new LogoType(data, ImageTypeParameter.PNG);
 vcard.addLogo(logo);
 
 //if "ImageTypeParameter" does not have the pre-defined constant that you need, then create a new instance
 //arg 1: the value of the 2.1/3.0 TYPE parameter
 //arg 2: the value to use for the 4.0 MEDIATYPE parameter and for 4.0 data URIs
 //arg 3: the file extension of the data type (optional)
 ImageKeyTypeParameter param = new ImageTypeParameter("bmp", "image/x-ms-bmp", "bmp");
 logo = new LogoType("http://www.company.com/logo.bmp", param);
 vcard.addLogo(logo);
 

Getting the logos

 VCard vcard = ...
 
 int fileCount = 0;
 for (LogoType logo : vcard.getLogos()){
   //the logo will have either a URL or a binary data
   if (logo.getData() == null){
     System.out.println("Logo URL: " + logo.getUrl());
   } else {
     ImageTypeParameter type = logo.getContentType();
     
     if (type == null) {
       //the vCard may not have any content type data associated with the logo
       System.out.println("Saving a logo file...");
     } else {
       System.out.println("Saving a \"" + type.getMediaType() + "\" file...");
     }
     
     String folder;
     if (type == ImageTypeParameter.PNG){ //it is safe to use "==" instead of "equals()"
       folder = "png-files";
     } else {
       folder = "image-files";
     }
     
     byte data[] = logo.getData();
     String filename = "logo" + fileCount;
     if (type != null && type.getExtension() != null){
        filename += "." + type.getExtension();
     }
     OutputStream out = new FileOutputStream(new File(folder, filename));
     out.write(data);
     out.close();
     fileCount++;
   }
 }
 

vCard property name: LOGO

vCard versions: 2.1, 3.0, 4.0

Author:
Michael Angstadt

Field Summary
static String NAME
           
 
Fields inherited from class ezvcard.types.BinaryType
contentType, data, url
 
Fields inherited from class ezvcard.types.VCardType
group, subTypes, typeName
 
Constructor Summary
LogoType()
           
LogoType(byte[] data, ImageTypeParameter type)
           
LogoType(File file, ImageTypeParameter type)
           
LogoType(InputStream in, ImageTypeParameter type)
           
LogoType(String url, ImageTypeParameter type)
           
 
Method Summary
protected  ImageTypeParameter buildMediaTypeObj(String mediaType)
          Builds a MediaTypeParameter object based on the information in the MEDIATYPE parameter or data URI of 4.0 vCards.
protected  ImageTypeParameter buildTypeObj(String type)
          Builds a MediaTypeParameter object based on the value of the TYPE parameter in 2.1/3.0 vCards.
protected  void doUnmarshalHtml(HCardElement element, List<String> warnings)
          Unmarshals the type from an hCard (HTML document).
 String getLanguage()
          Gets the language that the address is written in.
 void setLanguage(String language)
          Sets the language that the address is written in.
 
Methods inherited from class ezvcard.types.BinaryType
addPid, cannotUnmarshalValue, doMarshalSubTypes, doMarshalText, doMarshalXml, doUnmarshalText, doUnmarshalXml, getAltId, getContentType, getData, getPids, getPref, getType, getUrl, removePids, setAltId, setContentType, setData, setPref, setType, setUrl
 
Methods inherited from class ezvcard.types.VCardType
compareTo, getGroup, getQName, getSubTypes, getSupportedVersions, getTypeName, marshalSubTypes, marshalText, marshalXml, setGroup, unmarshalHtml, unmarshalText, unmarshalXml
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NAME

public static final String NAME
See Also:
Constant Field Values
Constructor Detail

LogoType

public LogoType()

LogoType

public LogoType(String url,
                ImageTypeParameter type)
Parameters:
url - the URL to the logo
type - the content type (e.g. PNG)

LogoType

public LogoType(byte[] data,
                ImageTypeParameter type)
Parameters:
data - the binary data of the logo
type - the content type (e.g. PNG)

LogoType

public LogoType(InputStream in,
                ImageTypeParameter type)
         throws IOException
Parameters:
in - an input stream to the binary data (will be closed)
type - the content type (e.g. PNG)
Throws:
IOException - if there's a problem reading from the input stream

LogoType

public LogoType(File file,
                ImageTypeParameter type)
         throws IOException
Parameters:
file - the image file
type - the content type (e.g. PNG)
Throws:
IOException - if there's a problem reading from the file
Method Detail

getLanguage

public String getLanguage()
Gets the language that the address is written in.

Returns:
the language or null if not set
See Also:
VCardSubTypes.getLanguage()

setLanguage

public void setLanguage(String language)
Sets the language that the address is written in.

Parameters:
language - the language or null to remove
See Also:
VCardSubTypes.setLanguage(java.lang.String)

doUnmarshalHtml

protected void doUnmarshalHtml(HCardElement element,
                               List<String> warnings)
Description copied from class: VCardType
Unmarshals the type from an hCard (HTML document).

Overrides:
doUnmarshalHtml in class BinaryType<ImageTypeParameter>
Parameters:
element - the HTML element that contains the type data.
warnings - allows the programmer to alert the user to any note-worthy (but non-critical) issues that occurred during the unmarshalling process

buildTypeObj

protected ImageTypeParameter buildTypeObj(String type)
Description copied from class: BinaryType
Builds a MediaTypeParameter object based on the value of the TYPE parameter in 2.1/3.0 vCards.

Specified by:
buildTypeObj in class BinaryType<ImageTypeParameter>
Parameters:
type - the TYPE value
Returns:
the parameter object

buildMediaTypeObj

protected ImageTypeParameter buildMediaTypeObj(String mediaType)
Description copied from class: BinaryType
Builds a MediaTypeParameter object based on the information in the MEDIATYPE parameter or data URI of 4.0 vCards.

Specified by:
buildMediaTypeObj in class BinaryType<ImageTypeParameter>
Parameters:
mediaType - the media type string (e.g. "image/jpeg")
Returns:
the parameter object


Copyright © 2012-2013. All Rights Reserved.