001package microsoft.exchange.webservices.data.core.service.item; 002 003import microsoft.exchange.webservices.data.core.*; 004import microsoft.exchange.webservices.data.core.enumeration.misc.*; 005import microsoft.exchange.webservices.data.property.complex.*; 006 007public class UploadItem { 008 009 public enum CreateAction { 010 CreateNew, 011 Update 012 } 013 014 private CreateAction createAction; 015 016 private FolderId parentFolderId; 017 018 private ItemId itemId; 019 020 private byte[] data; 021 022 public void writeToXml(EwsServiceXmlWriter writer) { 023 try { 024 writer.writeStartElement(XmlNamespace.Types, XmlElementNames.Item); 025 writer.writeAttributeValue(XmlAttributeNames.CreateAction, createAction); 026 parentFolderId.writeToXml(writer, XmlElementNames.ParentFolderId); 027 if (itemId != null) { 028 itemId.writeToXml(writer); 029 } 030 writer.writeStartElement(XmlNamespace.Types, XmlElementNames.Data); 031 writer.writeBase64ElementValue(data); 032 writer.writeEndElement(); 033 writer.writeEndElement(); 034 } catch (Exception e) { 035 throw new RuntimeException(e); 036 } 037 } 038 039 public void validate() throws Exception { 040 EwsUtilities.validateParam(createAction, "createAction"); 041 EwsUtilities.validateParam(parentFolderId, "parentFolderId"); 042 EwsUtilities.validateParam(data, "data"); 043 if (createAction == CreateAction.Update) { 044 EwsUtilities.validateParam(itemId, "itemId required for updates"); 045 } 046 } 047 048 public CreateAction getCreateAction() { 049 return createAction; 050 } 051 052 public UploadItem setCreateAction(CreateAction createAction) { 053 this.createAction = createAction; 054 return this; 055 } 056 057 public FolderId getParentFolderId() { 058 return parentFolderId; 059 } 060 061 public UploadItem setParentFolderId(FolderId parentFolderId) { 062 this.parentFolderId = parentFolderId; 063 return this; 064 } 065 066 public ItemId getItemId() { 067 return itemId; 068 } 069 070 public UploadItem setItemId(ItemId itemId) { 071 this.itemId = itemId; 072 return this; 073 } 074 075 public byte[] getData() { 076 return data; 077 } 078 079 public UploadItem setData(byte[] data) { 080 this.data = data; 081 return this; 082 } 083}