/** * Gets the members of the expanded group. * * @param reader the reader * @throws Exception the exception */ public void loadFromXml(EwsServiceXmlReader reader) throws Exception { reader.readStartElement(XmlNamespace.Messages, XmlElementNames.DLExpansion); if (!reader.isEmptyElement()) { int totalItemsInView = reader.readAttributeValue(Integer.class, XmlAttributeNames.TotalItemsInView); this.includesAllMembers = reader.readAttributeValue(Boolean.class, XmlAttributeNames.IncludesLastItemInRange); for (int i = 0; i < totalItemsInView; i++) { EmailAddress emailAddress = new EmailAddress(); reader.readStartElement(XmlNamespace.Types, XmlElementNames.Mailbox); emailAddress.loadFromXml(reader, XmlElementNames.Mailbox); this.getMembers().add(emailAddress); } reader.readEndElement(XmlNamespace.Messages, XmlElementNames.DLExpansion); } else { reader.read(); } }
/** * Reads response elements from XML. * * @param reader The reader. */ @Override protected void readElementsFromXml(EwsServiceXmlReader reader) throws Exception { reader.read(); this.ruleCollection.setOutlookRuleBlobExists(reader. readElementValue(Boolean.class, XmlNamespace.Messages, XmlElementNames.OutlookRuleBlobExists)); reader.read(); if (reader.isStartElement(XmlNamespace.NotSpecified, XmlElementNames.InboxRules)) { this.ruleCollection.loadFromXml(reader, XmlNamespace.NotSpecified, XmlElementNames.InboxRules); } }
/** * Reads response elements from XML. * * @param reader the reader * @throws Exception the exception */ @Override protected void readElementsFromXml(EwsServiceXmlReader reader) throws Exception { super.readElementsFromXml(reader); reader.readStartElement(XmlNamespace.Messages, XmlElementNames.Attachments); // reader.read(XmlNodeType.START_ELEMENT); XmlNodeType x = new XmlNodeType(XmlNodeType.START_ELEMENT); reader.read(x); this.attachment.loadFromXml(reader, reader.getLocalName()); reader.readEndElement(XmlNamespace.Messages, XmlElementNames.Attachments); }
/** * Loads from XML. * * @param reader the reader * @param localElementName the local element name * @throws Exception the exception */ @Override public void loadFromXml(EwsServiceXmlReader reader, String localElementName) throws Exception { reader.ensureCurrentNodeIsStartElement(XmlNamespace.Types, localElementName); reader.readStartElement(XmlNamespace.Types, this .getInnerCollectionXmlElementName()); super.loadFromXml(reader, this.getInnerCollectionXmlElementName()); reader.readEndElementIfNecessary(XmlNamespace.Types, this .getInnerCollectionXmlElementName()); reader.read(); if (reader.isStartElement(XmlNamespace.Types, XmlElementNames.UnknownEntries)) { do { reader.read(); if (reader.isStartElement(XmlNamespace.Types, XmlElementNames.UnknownEntry)) { this.unknownEntries.add(reader.readElementValue()); } } while (!reader.isEndElement(XmlNamespace.Types, XmlElementNames.UnknownEntries)); } }
/** * Read SOAP header and extract server version. * * @param reader EwsServiceXmlReader * @throws Exception the exception */ private void readSoapHeader(EwsServiceXmlReader reader) throws Exception { reader.readStartElement(XmlNamespace.Soap, XmlElementNames.SOAPHeaderElementName); do { reader.read(); // Is this the ServerVersionInfo? if (reader.isStartElement(XmlNamespace.Types, XmlElementNames.ServerVersionInfo)) { this.service.setServerInfo(ExchangeServerInfo.parse(reader)); } // Ignore anything else inside the SOAP header } while (!reader.isEndElement(XmlNamespace.Soap, XmlElementNames.SOAPHeaderElementName)); }
/** * Tries to read element from XML. * * @param reader accepts EwsServiceXmlReader * @return True if element was read * @throws XMLStreamException the XML stream exception * @throws ServiceXmlDeserializationException the service xml deserialization exception */ @Override public boolean tryReadElementFromXml(EwsServiceXmlReader reader) throws XMLStreamException, ServiceXmlDeserializationException { boolean returnValue = false; if (reader.getLocalName().equals(this.itemXmlElementName)) { if (!reader.isEmptyElement()) { this.add(reader.readValue()); returnValue = true; } else { reader.read(); returnValue = true; } } return returnValue; }
/** * Try to read the XML declaration. If it's not there, the server didn't return XML. * * @param reader The reader. */ private void readXmlDeclaration(EwsServiceXmlReader reader) throws Exception { try { reader.read(new XmlNodeType(XmlNodeType.START_DOCUMENT)); } catch (XmlException ex) { throw new ServiceRequestException("The response received from the service didn't contain valid XML.", ex); } catch (ServiceXmlDeserializationException ex) { throw new ServiceRequestException("The response received from the service didn't contain valid XML.", ex); } }
/** * Reads response elements from XML. * * @param reader The reader. * @throws Exception the exception */ @Override protected void readElementsFromXml(EwsServiceXmlReader reader) throws Exception { super.readElementsFromXml(reader); reader.readStartElement(XmlNamespace.Messages, XmlElementNames.Attachments); if (!reader.isEmptyElement()) { XmlNodeType x = new XmlNodeType(XmlNodeType.START_ELEMENT); reader.read(x); this.attachment.loadFromXml(reader, reader.getLocalName()); reader.readEndElement(XmlNamespace.Messages, XmlElementNames.Attachments); } else { reader.read(); } }
/** * Loads a notification event from XML. * * @param reader the reader * @param eventElementName the event element name * @param eventType the event type * @throws Exception the exception */ private void loadNotificationEventFromXml(EwsServiceXmlReader reader, String eventElementName, EventType eventType) throws Exception { Date date = reader.readElementValue(Date.class, XmlNamespace.Types, XmlElementNames.TimeStamp); NotificationEvent notificationEvent; reader.read(); if (reader.getLocalName().equals(XmlElementNames.FolderId)) { notificationEvent = new FolderEvent(eventType, date); } else { notificationEvent = new ItemEvent(eventType, date); } notificationEvent.loadFromXml(reader, eventElementName); this.events.add(notificationEvent); }
/** * Reads response elements from XML. * * @param reader the reader * @throws Exception the exception */ @Override protected void readElementsFromXml(EwsServiceXmlReader reader) throws Exception { super.readElementsFromXml(reader); reader.readStartElement(XmlNamespace.Messages, XmlElementNames.TimeZoneDefinitions); if (!reader.isEmptyElement()) { do { reader.read(); if (reader.isStartElement(XmlNamespace.Types, XmlElementNames.TimeZoneDefinition)) { TimeZoneDefinition timeZoneDefinition = new TimeZoneDefinition(); timeZoneDefinition.loadFromXml(reader); this.timeZones.add(timeZoneDefinition); } } while (!reader.isEndElement(XmlNamespace.Messages, XmlElementNames.TimeZoneDefinitions)); } else { reader.read(); } }
/** * Reads any preamble data not part of the core response. * * @param ewsXmlReader The EwsServiceXmlReader. * @throws Exception */ @Override protected void readPreamble(EwsServiceXmlReader ewsXmlReader) throws Exception { // Do nothing. try { ewsXmlReader.read(new XmlNodeType(XmlNodeType.START_DOCUMENT)); } catch (XmlException ex) { throw new ServiceRequestException("The response received from the service didn't contain valid XML.", ex); } catch (ServiceXmlDeserializationException ex) { throw new ServiceRequestException("The response received from the service didn't contain valid XML.", ex); } } }
/** * Loads from XML. * * @param reader the reader * @throws Exception the exception */ protected void loadFromXml(EwsServiceXmlReader reader) throws Exception { reader.readStartElement(XmlNamespace.Types, XmlElementNames.Resolution); reader.readStartElement(XmlNamespace.Types, XmlElementNames.Mailbox); this.mailbox.loadFromXml(reader, XmlElementNames.Mailbox); reader.read(); if (reader.isStartElement(XmlNamespace.Types, XmlElementNames.Contact)) { this.contact = new Contact(this.owner.getSession()); this.contact.loadFromXml(reader, true /* clearPropertyBag */, PropertySet.FirstClassProperties, false /* summaryPropertiesOnly */); reader.readEndElement(XmlNamespace.Types, XmlElementNames.Resolution); } else { reader.ensureCurrentNodeIsEndElement(XmlNamespace.Types, XmlElementNames.Resolution); } }
/** * Loads a notification event from XML. * * @param reader The reader. * @param eventElementName Name of the event XML element. * @param eventType Type of the event. * @param notifications Collection of notification * @throws Exception */ private void loadNotificationEventFromXml( EwsServiceXmlReader reader, String eventElementName, EventType eventType, NotificationGroup notifications) throws Exception { Date timestamp = reader.readElementValue(Date.class, XmlNamespace.Types, XmlElementNames.TimeStamp); NotificationEvent notificationEvent; reader.read(); if (reader.getLocalName().equals(XmlElementNames.FolderId)) { notificationEvent = new FolderEvent(eventType, timestamp); } else { notificationEvent = new ItemEvent(eventType, timestamp); } notificationEvent.loadFromXml(reader, eventElementName); notifications.events.add(notificationEvent); }
/** * Loads the suggested days from XML. * * @param reader the reader * @throws Exception the exception */ public void loadSuggestedDaysFromXml(EwsServiceXmlReader reader) throws Exception { reader.readStartElement(XmlNamespace.Messages, XmlElementNames.SuggestionDayResultArray); do { reader.read(); if (reader.isStartElement(XmlNamespace.Types, XmlElementNames.SuggestionDayResult)) { Suggestion daySuggestion = new Suggestion(); daySuggestion.loadFromXml(reader, reader.getLocalName()); this.daySuggestions.add(daySuggestion); } } while (!reader.isEndElement(XmlNamespace.Messages, XmlElementNames.SuggestionDayResultArray)); }
/** * Tries to read element from XML. * * @param reader the reader * @return True if element was read. * @throws Exception the exception */ @Override public boolean tryReadElementFromXml(EwsServiceXmlReader reader) throws Exception { if (reader.getLocalName().equalsIgnoreCase( XmlElementNames.BaseFolderIds)) { this.rootFolderIds.internalClear(); this.rootFolderIds.loadFromXml(reader, reader.getLocalName()); return true; } else if (reader.getLocalName().equalsIgnoreCase( XmlElementNames.Restriction)) { reader.read(); this.searchFilter = SearchFilter.loadFromXml(reader); return true; } else { return false; } }
/** * Reads response elements from XML * * @param reader the reader * @throws Exception the exception */ @Override protected void readElementsFromXml(EwsServiceXmlReader reader) throws Exception { super.readElementsFromXml(reader); if (this.getErrorCode() == ServiceError.NoError) { // This is a hack. If there were no response messages, the reader // will already be on the // DeliverMeetingRequests start element, so we don't need to read // it. if (this.getDelegateUserResponses().size() > 0) { reader.read(); } if (reader.isStartElement(XmlNamespace.Messages, XmlElementNames.DeliverMeetingRequests)) { this.meetingRequestsDeliveryScope = reader .readElementValue(MeetingRequestsDeliveryScope.class); } } }
/** * For ItemAttachment, AttachmentId and Item should be patched. * * @param reader The reader. * <p/> * True if element was read. */ public boolean tryReadElementFromXmlToPatch(EwsServiceXmlReader reader) throws Exception { // update the attachment id. super.tryReadElementFromXml(reader); reader.read(); String localName = reader.getLocalName(); Class<?> itemClass = EwsUtilities.getItemTypeFromXmlElementName(localName); if (itemClass != null) { if (item == null || item.getClass() != itemClass) { throw new ServiceLocalException( "Attachment item type mismatch."); } this.item.loadFromXml(reader, false /* clearPropertyBag */); return true; } return false; }
/** * Reads response elements from XML. * * @throws Exception */ @Override protected void readElementsFromXml(EwsServiceXmlReader reader) throws Exception { super.readElementsFromXml(reader); reader.read(); if (reader.getLocalName().equals(XmlElementNames.Notifications)) { this.results.loadFromXml(reader); } else if (reader.getLocalName().equals(XmlElementNames.ConnectionStatus)) { String connectionStatus = reader.readElementValue(XmlNamespace. Messages, XmlElementNames.ConnectionStatus); if (connectionStatus.equals(ConnectionStatus.Closed.toString())) { this.request.disconnect( HangingRequestDisconnectReason.Clean, null); } } }
private void internalupdateLoadFromXml( EwsServiceXmlReader reader, XmlNamespace xmlNamespace, String xmlElementName) throws Exception { reader.ensureCurrentNodeIsStartElement(xmlNamespace, xmlElementName); this.readAttributesFromXml(reader); if (!reader.isEmptyElement()) { do { reader.read(); switch (reader.getNodeType().nodeType) { case XmlNodeType.START_ELEMENT: if (!this.tryReadElementFromXmlToPatch(reader)) { reader.skipCurrentElement(); } break; case XmlNodeType.CHARACTERS: this.readTextValueFromXml(reader); break; } } while (!reader.isEndElement(xmlNamespace, xmlElementName)); } }
/** * Loads extra error details from XML * * @throws Exception */ @Override protected boolean loadExtraErrorDetailsFromXml(EwsServiceXmlReader reader, String xmlElementName) throws Exception { boolean baseReturnVal = super. loadExtraErrorDetailsFromXml(reader, xmlElementName); if (reader.isStartElement(XmlNamespace.Messages, XmlElementNames.ErrorSubscriptionIds)) { do { reader.read(); if (reader.getNodeType().getNodeType() == XmlNodeType.START_ELEMENT && reader.getLocalName().equals(XmlElementNames.SubscriptionId)) { this.getErrorSubscriptionIds().add( reader.readElementValue(XmlNamespace.Messages, XmlElementNames.SubscriptionId)); } } while (!reader.isEndElement(XmlNamespace.Messages, XmlElementNames.ErrorSubscriptionIds)); return true; } else { return baseReturnVal; } }