microsoft.exchange.webservices.data
Class AttachmentCollection

java.lang.Object
  extended by microsoft.exchange.webservices.data.ComplexProperty
      extended by microsoft.exchange.webservices.data.ComplexPropertyCollection<Attachment>
          extended by microsoft.exchange.webservices.data.AttachmentCollection
All Implemented Interfaces:
java.lang.Iterable<Attachment>

public final class AttachmentCollection
extends ComplexPropertyCollection<Attachment>

Represents an item's attachment collection.


Constructor Summary
protected AttachmentCollection()
          Initializes a new instance of AttachmentCollection.
 
Method Summary
 FileAttachment addFileAttachment(java.lang.String fileName)
          * Adds a file attachment to the collection.
 FileAttachment addFileAttachment(java.lang.String name, byte[] content)
          * Adds a file attachment to the collection.
 FileAttachment addFileAttachment(java.lang.String name, java.io.InputStream contentStream)
          * Adds a file attachment to the collection.
 FileAttachment addFileAttachment(java.lang.String name, java.lang.String fileName)
          * Adds a file attachment to the collection.
<TItem extends Item>
GenericItemAttachment<TItem>
addItemAttachment(java.lang.Class<TItem> cls)
          * Adds an item attachment to the collection.
 void clear()
          Removes all attachments from this collection.
protected  void clearChangeLog()
          Disables the change log clearing mechanism.
protected  Attachment createComplexProperty(java.lang.String xmlElementName)
          Instantiate the appropriate attachment type depending on the current XML element name.
protected  java.lang.String getCollectionItemXmlElementName(Attachment complexProperty)
          Determines the name of the XML element associated with the complexProperty parameter.
 ServiceObject getOwner()
          The owner of this attachment collection.
protected  boolean hasUnprocessedChanges()
          Determines whether there are any unsaved attachment collection changes.
 boolean remove(Attachment attachment)
          Removes the specified attachment.
 void removeAt(int index)
          Removes the attachment at the specified index.
protected  void save()
          Saves this collection by creating new attachment and deleting removed ones.
 void setOwner(ServiceObject value)
          The owner of this attachment collection.
 void validate()
          Validates this instance.
 
Methods inherited from class microsoft.exchange.webservices.data.ComplexPropertyCollection
complexPropertyChanged, contains, getAddedItems, getCount, getItems, getModifiedItems, getPropertyAtIndex, getRemovedItems, indexOf, internalAdd, internalClear, internalRemove, internalRemoveAt, itemChanged, iterator, loadFromXml, loadFromXml, removeFromChangeLog, shouldWriteToXml, updateFromXml, writeDeleteUpdateToXml, writeElementsToXml, writeSetUpdateToXml, writeToXml
 
Methods inherited from class microsoft.exchange.webservices.data.ComplexProperty
addOnChangeEvent, canSetFieldValue, changed, clearChangeEvents, func, getNamespace, internalValidate, readAttributesFromXml, readTextValueFromXml, removeChangeEvent, setNamespace, tryReadElementFromXml, tryReadElementFromXmlToPatch, updateFromXml, writeAttributesToXml, writeToXml
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AttachmentCollection

protected AttachmentCollection()
Initializes a new instance of AttachmentCollection.

Method Detail

getOwner

public ServiceObject getOwner()
The owner of this attachment collection.

Returns:
the owner

setOwner

public void setOwner(ServiceObject value)
The owner of this attachment collection.

Parameters:
value - accepts ServiceObject

addFileAttachment

public FileAttachment addFileAttachment(java.lang.String fileName)
* Adds a file attachment to the collection.

Parameters:
fileName - the file name
Returns:
A FileAttachment instance.

addFileAttachment

public FileAttachment addFileAttachment(java.lang.String name,
                                        java.lang.String fileName)
* Adds a file attachment to the collection.

Parameters:
name - accepts String display name of the new attachment.
fileName - accepts String name of the file representing the content of the attachment.
Returns:
A FileAttachment instance.

addFileAttachment

public FileAttachment addFileAttachment(java.lang.String name,
                                        java.io.InputStream contentStream)
* Adds a file attachment to the collection.

Parameters:
name - accepts String display name of the new attachment.
contentStream - accepts InputStream stream from which to read the content of the attachment.
Returns:
A FileAttachment instance.

addFileAttachment

public FileAttachment addFileAttachment(java.lang.String name,
                                        byte[] content)
* Adds a file attachment to the collection.

Parameters:
name - the name
content - accepts byte byte arrays representing the content of the attachment.
Returns:
FileAttachment

addItemAttachment

public <TItem extends Item> GenericItemAttachment<TItem> addItemAttachment(java.lang.Class<TItem> cls)
                                                            throws java.lang.Exception
* Adds an item attachment to the collection.

Type Parameters:
TItem - the generic type
Parameters:
cls - the cls
Returns:
An ItemAttachment instance.
Throws:
java.lang.Exception - the exception

clear

public void clear()
Removes all attachments from this collection.


removeAt

public void removeAt(int index)
Removes the attachment at the specified index.

Parameters:
index - Index of the attachment to remove.

remove

public boolean remove(Attachment attachment)
               throws java.lang.Exception
Removes the specified attachment.

Parameters:
attachment - The attachment to remove.
Returns:
True if the attachment was successfully removed from the collection, false otherwise.
Throws:
java.lang.Exception - the exception

createComplexProperty

protected Attachment createComplexProperty(java.lang.String xmlElementName)
Instantiate the appropriate attachment type depending on the current XML element name.

Specified by:
createComplexProperty in class ComplexPropertyCollection<Attachment>
Parameters:
xmlElementName - The XML element name from which to determine the type of attachment to create.
Returns:
An Attachment instance.

getCollectionItemXmlElementName

protected java.lang.String getCollectionItemXmlElementName(Attachment complexProperty)
Determines the name of the XML element associated with the complexProperty parameter.

Specified by:
getCollectionItemXmlElementName in class ComplexPropertyCollection<Attachment>
Parameters:
complexProperty - The attachment object for which to determine the XML element name with.
Returns:
The XML element name associated with the complexProperty parameter.

save

protected void save()
             throws java.lang.Exception
Saves this collection by creating new attachment and deleting removed ones.

Throws:
java.lang.Exception - the exception

hasUnprocessedChanges

protected boolean hasUnprocessedChanges()
                                 throws ServiceLocalException
Determines whether there are any unsaved attachment collection changes.

Returns:
True if attachment adds or deletes haven't been processed yet.
Throws:
ServiceLocalException

clearChangeLog

protected void clearChangeLog()
Disables the change log clearing mechanism. Attachment collections are saved separately from the items they belong to.

Overrides:
clearChangeLog in class ComplexPropertyCollection<Attachment>

validate

public void validate()
              throws java.lang.Exception
Validates this instance.

Overrides:
validate in class ComplexProperty
Throws:
java.lang.Exception - the exception