예제 #1
0
  /**
   * Reads response elements from XML.
   *
   * @param reader ,The reader
   * @throws Exception the exception
   */
  @Override
  protected void readElementsFromXml(EwsServiceXmlReader reader) throws Exception {
    reader.readStartElement(XmlNamespace.Messages, XmlElementNames.RootFolder);

    int totalItemsInView =
        reader.readAttributeValue(Integer.class, XmlAttributeNames.TotalItemsInView);
    boolean moreItemsAvailable =
        !reader.readAttributeValue(Boolean.class, XmlAttributeNames.IncludesLastItemInRange);

    // Ignore IndexedPagingOffset attribute if moreItemsAvailable is false.
    Integer nextPageOffset =
        moreItemsAvailable
            ? reader.readNullableAttributeValue(
                Integer.class, XmlAttributeNames.IndexedPagingOffset)
            : null;

    if (!this.isGrouped) {
      this.results = new FindItemsResults<TItem>();
      this.results.setTotalCount(totalItemsInView);
      this.results.setNextPageOffset(nextPageOffset);
      this.results.setMoreAvailable(moreItemsAvailable);
      internalReadItemsFromXml(reader, this.propertySet, this.results.getItems());
    } else {
      this.groupedFindResults = new GroupedFindItemsResults<TItem>();
      this.groupedFindResults.setTotalCount(totalItemsInView);
      this.groupedFindResults.setNextPageOffset(nextPageOffset);
      this.groupedFindResults.setMoreAvailable(moreItemsAvailable);

      reader.readStartElement(XmlNamespace.Types, XmlElementNames.Groups);

      if (!reader.isEmptyElement()) {
        do {
          reader.read();

          if (reader.isStartElement(XmlNamespace.Types, XmlElementNames.GroupedItems)) {
            String groupIndex =
                reader.readElementValue(XmlNamespace.Types, XmlElementNames.GroupIndex);

            ArrayList<TItem> itemList = new ArrayList<TItem>();
            internalReadItemsFromXml(reader, this.propertySet, itemList);

            reader.readEndElement(XmlNamespace.Types, XmlElementNames.GroupedItems);

            this.groupedFindResults.getItemGroups().add(new ItemGroup<TItem>(groupIndex, itemList));
          }
        } while (!reader.isEndElement(XmlNamespace.Types, XmlElementNames.Groups));
      } else {
        reader.read();
      }
    }

    reader.readEndElement(XmlNamespace.Messages, XmlElementNames.RootFolder);
  }
예제 #2
0
 /**
  * * Reads the attributes from XML.
  *
  * @param reader accepts EwsServiceXmlReader
  * @throws Exception throws Exception
  */
 @Override
 protected void readAttributesFromXml(EwsServiceXmlReader reader) throws Exception {
   this.timeZoneName = reader.readAttributeValue(XmlAttributeNames.TimeZoneName);
 }
예제 #3
0
 /**
  * Loads the attributes from XML.
  *
  * @param reader the reader
  * @throws Exception the exception
  */
 protected void loadAttributesFromXml(EwsServiceXmlReader reader) throws Exception {
   this.setFormat(reader.readAttributeValue(IdFormat.class, XmlAttributeNames.Format));
 }