ContactFeedDeserializer.java :  » App » notes-for-android » androidx » gdata » contacts » xml » Android Open Source

Android Open Source » App » notes for android 
notes for android » androidx » gdata » contacts » xml » ContactFeedDeserializer.java
// Copyright 2008 Google Inc. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package androidx.gdata.contacts.xml;

import androidx.gdata.contacts.Contact;
import androidx.gdata.contacts.ContactFeed;
import androidx.gdata.Author;
import androidx.gdata.xml.ThingWithLinksDeserializer;
import androidx.gdata.xml.GeneratorDeserializer;
import androidx.gdata.xml.CategoryDeserializer;
import androidx.gdata.xml.AuthorDeserializer;
import androidx.gdata.LinkUrl;
import androidx.gdata.Generator;
import androidx.gdata.OpenSearch;
import androidx.gdata.Category;
import org.w3c.dom.Node;

import java.util.List;

/**
 * @author jennings
 *         Date: Nov 7, 2008
 */
public class ContactFeedDeserializer extends ThingWithLinksDeserializer<ContactFeed> {
  private ContactDeserializer contactBuilder = new ContactDeserializer();
  private AuthorDeserializer authorBuilder = new AuthorDeserializer();
  private GeneratorDeserializer generatorBuilder = new GeneratorDeserializer();
  private CategoryDeserializer categoryBuilder = new CategoryDeserializer();
  
  public ContactFeed build(Node feedNode) {
    node = feedNode;
    String id = getText("id");
    String updated = getText("updated");
    Node categoryNode = getChildNode("category");
    Category category = categoryBuilder.build(categoryNode);
    String title = getText("title");
    String totalResults = getText("openSearch:totalResults");
    String startIndex = getText("openSearch:startIndex");
    String itemsPerPage = getText("openSearch:itemsPerPage");
    OpenSearch openSearch = new OpenSearch(totalResults, startIndex, itemsPerPage);
    Node authorNode = getChildNode("author");
    Author author = authorBuilder.build(authorNode);
    Node generatorNode = getChildNode("generator");
    Generator generator = generatorBuilder.build(generatorNode);
    List<Node> entryNodes = getChildNodes("entry");
    Contact[] contacts = new Contact[entryNodes.size()];
    int i = 0;
    for (Node entryNode : entryNodes) {
      Contact contact = contactBuilder.build(entryNode);
      contacts[i++] = contact;
    }
    LinkUrl[] links = getLinks();
    return new ContactFeed(id, updated, category, title, links, contacts,
        author, generator, openSearch);
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.