Android Open Source - pulltorefresh_library_with_Indexable_listView Xml Pull Parser Wrapper






From Project

Back to project page pulltorefresh_library_with_Indexable_listView.

License

The source code is released under:

Apache License

If you think the Android project pulltorefresh_library_with_Indexable_listView listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*******************************************************************************
 * Copyright 2013 Naver Business Platform Corp.
 * /*from   ww w.j a v a2  s  .  com*/
 * 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 com.handmark.pulltorefresh.configuration.xml;

import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;

import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;

import com.handmark.pulltorefresh.library.internal.Assert;
/**
 * <p>
 * {@code XmlPullParser} Wrapper <br />
 * This class provide util methods such as {@link #nextStartTag()}, {@link #isStartTag()} , and so on  
 * </p>
 * @author Wonjun Kim
 *
 */
class XmlPullParserWrapper implements XmlPullParser {
  /**  
   * {@code XmlPullParserWrapper} call this {@code parser} as delegatee
   */
  private final XmlPullParser parser;
  /**
   * <p>
   * Need {@code XmlPullParser} <br /> 
   * If {@code parser} is null, It throws {@code NullPointerException}
   * </p> 
   * @param parser delegated {@link XmlPullParser}
   */
  public XmlPullParserWrapper(XmlPullParser parser) {
    Assert.notNull(parser, "XmlPullParser");
    this.parser = parser;
  }
  /**
   * <p>
   * {@code DocumentState} represents current state (instead of event type) of a document which the parser reads.<br /> 
   * </p>
   * @author Wonjun Kim
   *
   */
  public static enum DocumentState {
    /**
     * READ : Document is readable yet
     */
    READ, 
    /**
     * FOUNDTAG : Document is readable yet and current event is a tag type
     */
    FOUNDTAG, 
    /**
     * END : Document is completely read. There is no more token
     */
    END;
  }
  /**
   * @return true if current type is {@code START_TAG}
   * @throws XmlPullParserException
   */
  public boolean isStartTag() throws XmlPullParserException {
    return getEventType() == START_TAG;
  }
  /**
   * @return true if current type is {@code END_TAG}
   * @throws XmlPullParserException
   */
  public boolean isEndTag() throws XmlPullParserException {
    return getEventType() == END_TAG;
  }
  /**
   * @return true if current type is {@code TEXT}
   * @throws XmlPullParserException
   */
  public boolean isText() throws XmlPullParserException {
    return getEventType() == TEXT;
  }
  /**
   * @return true if current type is {@code START_DOCUMENT}
   * @throws XmlPullParserException
   */
  public boolean isStartDocument() throws XmlPullParserException {
    return getEventType() == START_DOCUMENT;
  }
  /**
   * @return true if current type is {@code END_DOCUMENT}
   * @throws XmlPullParserException
   */
  public boolean isEndDocument() throws XmlPullParserException {
    return getEventType() == END_DOCUMENT;
  }
  /**
   * @return true if current type is {@code COMMENT}
   * @throws XmlPullParserException
   */
  public boolean isComment() throws XmlPullParserException {
    return getEventType() == COMMENT;
  }
  /**
   * <p>
   * Find next start tag by calling {@link XmlPullParser#next()} again and again 
   * If the parser reaches the end of a document, this method will returns {@code DocumentState.END}
   * </p>
   * @return {@link DocumentState.FOUNDTAG} if start tag has been found 
   *        {@link DocumentState.END} if the parser reaches the end of a document
   * @throws XmlPullParserException
   * @throws IOException
   */
  public DocumentState nextStartTag() throws XmlPullParserException,
      IOException {
    while (true) {

      int evt = next();

      if (evt == XmlPullParser.START_TAG) {
        return DocumentState.FOUNDTAG;
      }

      if (evt == XmlPullParser.END_DOCUMENT) {
        return DocumentState.END;
      }
    }
  }
  /**
   * <p>
   * Find next start tag whose name is same as {@code tagName} by calling {@link XmlPullParser#next()} again and again 
   * If the parser reaches the end of a document, this method will returns {@code DocumentState.END}
   * </p>
   * @param tagName Tag name you want to find
   * @return {@link DocumentState.FOUNDTAG} if start tag has been found 
   *        {@link DocumentState.END} if the parser reaches the end of a document
   * @throws XmlPullParserException
   * @throws IOException
   */
  public DocumentState nextStartTagByName(String tagName)
      throws XmlPullParserException, IOException {
    while (true) {
      DocumentState documentState = nextStartTag();

      if (documentState.equals(DocumentState.END)) {
        return documentState;
      }
      
      if (matchCurrentTagName(tagName)) {
        break;
      }
    }

    return DocumentState.FOUNDTAG;
  }
  /**
   * <p>
   * Find next end tag by calling {@link XmlPullParser#next()} again and again 
   * If the parser reaches the end of a document, this method will returns {@code DocumentState.END}
   * </p>
   * @return {@link DocumentState.FOUNDTAG} if end tag has been found 
   *        {@link DocumentState.END} if the parser reaches the end of a document
   * @throws XmlPullParserException
   * @throws IOException
   */
  public DocumentState nextEndTag() throws XmlPullParserException,
      IOException {
    while (true) {

      int evt = next();

      if (evt == XmlPullParser.END_TAG) {
        return DocumentState.FOUNDTAG;
      }

      if (evt == XmlPullParser.END_DOCUMENT) {
        return DocumentState.END;
      }
    }
  }
  /**
   * <p>
   * Find next end tag whose name is same as {@code tagName} by calling {@link XmlPullParser#next()} again and again 
   * If the parser reaches the end of a document, this method will returns {@code DocumentState.END}
   * </p>
   * @param tagName Tag name you want to find
   * @return {@link DocumentState.FOUNDTAG} if start tag has been found 
   *        {@link DocumentState.END} if the parser reaches the end of a document
   * @throws XmlPullParserException
   * @throws IOException
   */
  public DocumentState nextEndTagByName(String tagName)
      throws XmlPullParserException, IOException {
    while (true) {
      DocumentState documentState = nextEndTag();

      if (documentState.equals(DocumentState.END)) {
        return documentState;
      }
      
      if (matchCurrentTagName(tagName)) {
        break;
      }
    }

    return DocumentState.FOUNDTAG;
  }
  /**
   * Check that current tag name is same as {@code tagName} 
   * 
   * @param tagName Tag name you want to check whether current tag is same as 
   * @return true if current tag name is same 
   * @throws XmlPullParserException
   * @throws IOException
   */
  public boolean matchCurrentTagName(String tagName) {
    Assert.notNull(tagName, "Tag Name");
    return getName().equals(tagName);
  }
  /** Wrapper method for {@link XmlPullParser#setFeature(String, boolean)} */
  @Override
  public void setFeature(String name, boolean state)
      throws XmlPullParserException {
    parser.setFeature(name, state);
  }
  /** Wrapper method for {@link XmlPullParser#getFeature(String)} */
  @Override
  public boolean getFeature(String name) {
    return parser.getFeature(name);
  }
  /** Wrapper method for {@link XmlPullParser#setProperty(String, Object)} */
  @Override
  public void setProperty(String name, Object value)
      throws XmlPullParserException {
    parser.setProperty(name, value);
  }
  /** Wrapper method for {@link XmlPullParser#getProperty(String)} */
  @Override
  public Object getProperty(String name) {
    return parser.getProperty(name);
  }
  /** Wrapper method for {@link XmlPullParser#setInput(Reader)} */
  @Override
  public void setInput(Reader in) throws XmlPullParserException {
    parser.setInput(in);
  }
  /** Wrapper method for {@link XmlPullParser#setInput(InputStream, String)} */
  @Override
  public void setInput(InputStream inputStream, String inputEncoding)
      throws XmlPullParserException {
    parser.setInput(inputStream, inputEncoding);
  }
  /** Wrapper method for {@link XmlPullParser#getInputEncoding()} */
  @Override
  public String getInputEncoding() {
    return parser.getInputEncoding();
  }
  /** Wrapper method for {@link XmlPullParser#defineEntityReplacementText(String, String)} */
  @Override
  public void defineEntityReplacementText(String entityName,
      String replacementText) throws XmlPullParserException {
    parser.defineEntityReplacementText(entityName, replacementText);
  }
  /** Wrapper method for {@link XmlPullParser#getNamespaceCount(int)} */
  @Override
  public int getNamespaceCount(int depth) throws XmlPullParserException {
    // TODO Auto-generated method stub
    return parser.getNamespaceCount(depth);
  }
  /** Wrapper method for {@link XmlPullParser#getNamespacePrefix(int)} */
  @Override
  public String getNamespacePrefix(int pos) throws XmlPullParserException {
    return parser.getNamespacePrefix(pos);
  }
  /** Wrapper method for {@link XmlPullParser#getNamespaceUri(int)} */
  @Override
  public String getNamespaceUri(int pos) throws XmlPullParserException {
    return parser.getNamespaceUri(pos);
  }
  /** Wrapper method for {@link XmlPullParser#getNamespace(String)} */
  @Override
  public String getNamespace(String prefix) {
    return parser.getNamespace(prefix);
  }
  /** Wrapper method for {@link XmlPullParser#getDepth()} */
  @Override
  public int getDepth() {
    return parser.getDepth();
  }
  /** Wrapper method for {@link XmlPullParser#getPositionDescription()} */
  @Override
  public String getPositionDescription() {
    return parser.getPositionDescription();
  }
  /** Wrapper method for {@link XmlPullParser#getLineNumber()} */
  @Override
  public int getLineNumber() {
    return parser.getLineNumber();
  }
  /** Wrapper method for {@link XmlPullParser#getColumnNumber()} */
  @Override
  public int getColumnNumber() {
    return parser.getColumnNumber();
  }
  /** Wrapper method for {@link XmlPullParser#isWhiteSpace()} */
  @Override
  public boolean isWhitespace() throws XmlPullParserException {
    return parser.isWhitespace();
  }
  /** Wrapper method for {@link XmlPullParser#getText()} */
  @Override
  public String getText() {
    return parser.getText();
  }
  /** Wrapper method for {@link XmlPullParser#getTextCharacters(int[])} */
  @Override
  public char[] getTextCharacters(int[] holderForStartAndLength) {
    return parser.getTextCharacters(holderForStartAndLength);
  }
  /** Wrapper method for {@link XmlPullParser#getNamespace()} */
  @Override
  public String getNamespace() {
    return parser.getNamespace();
  }
  /** Wrapper method for {@link XmlPullParser#getName()} */
  @Override
  public String getName() {
    return parser.getName();
  }
  /** Wrapper method for {@link XmlPullParser#getPrefix()} */
  @Override
  public String getPrefix() {
    return parser.getPrefix();
  }
  /** Wrapper method for {@link XmlPullParser#isEmptyElementTag()} */
  @Override
  public boolean isEmptyElementTag() throws XmlPullParserException {
    return parser.isEmptyElementTag();
  }
  /** Wrapper method for {@link XmlPullParser#getAttributeCount()} */
  @Override
  public int getAttributeCount() {
    return parser.getAttributeCount();
  }
  /** Wrapper method for {@link XmlPullParser#getAttributeNamespace(int)} */
  @Override
  public String getAttributeNamespace(int index) {
    return parser.getAttributeNamespace(index);
  }
  /** Wrapper method for {@link XmlPullParser#getAttributeName(int)} */
  @Override
  public String getAttributeName(int index) {
    return parser.getAttributeName(index);
  }
  /** Wrapper method for {@link XmlPullParser#getAttributePrefix(int)} */
  @Override
  public String getAttributePrefix(int index) {
    return parser.getAttributePrefix(index);
  }
  /** Wrapper method for {@link XmlPullParser#getAttributeType(int)} */
  @Override
  public String getAttributeType(int index) {
    return parser.getAttributeType(index);
  }
  /** Wrapper method for {@link XmlPullParser#isAttributeDefault(int)} */
  @Override
  public boolean isAttributeDefault(int index) {
    return parser.isAttributeDefault(index);
  }
  /** Wrapper method for {@link XmlPullParser#getAttributeValue(int)} */
  @Override
  public String getAttributeValue(int index) {
    return parser.getAttributeValue(index);
  }
  /** Wrapper method for {@link XmlPullParser#getAttributeValue(String, String)} */
  @Override
  public String getAttributeValue(String namespace, String name) {
    return parser.getAttributeValue(namespace, name);
  }
  /** Wrapper method for {@link XmlPullParser#getEventType()} */
  @Override
  public int getEventType() throws XmlPullParserException {
    return parser.getEventType();
  }
  /** Wrapper method for {@link XmlPullParser#next()} */
  @Override
  public int next() throws XmlPullParserException, IOException {
    return parser.next();
  }
  /** Wrapper method for {@link XmlPullParser#nextToken()} */
  @Override
  public int nextToken() throws XmlPullParserException, IOException {
    return parser.nextToken();
  }
  /** Wrapper method for {@link XmlPullParser#require(int, String, String)} */
  @Override
  public void require(int type, String namespace, String name)
      throws XmlPullParserException, IOException {
    parser.require(type, namespace, name);
  }
  /** Wrapper method for {@link XmlPullParser#nextTag()} */
  @Override
  public String nextText() throws XmlPullParserException, IOException {
    return parser.nextText();
  }
  /** Wrapper method for {@link XmlPullParser#nextTag()} */
  @Override
  public int nextTag() throws XmlPullParserException, IOException {
    return parser.nextTag();
  }
}




Java Source Code List

com.handmark.pulltorefresh.configuration.xml.ExtendedXmlConfigParserFactory.java
com.handmark.pulltorefresh.configuration.xml.PullToRefreshConfigXmlParser.java
com.handmark.pulltorefresh.configuration.xml.PullToRefreshNode.java
com.handmark.pulltorefresh.configuration.xml.PullToRefreshXmlConfiguration.java
com.handmark.pulltorefresh.configuration.xml.XmlPullNodeParser.java
com.handmark.pulltorefresh.configuration.xml.XmlPullNode.java
com.handmark.pulltorefresh.configuration.xml.XmlPullParserWrapper.java
com.handmark.pulltorefresh.extras.listfragment.PullToRefreshBaseListFragment.java
com.handmark.pulltorefresh.extras.listfragment.PullToRefreshExpandableListFragment.java
com.handmark.pulltorefresh.extras.listfragment.PullToRefreshIndexableListFragment.java
com.handmark.pulltorefresh.extras.listfragment.PullToRefreshListFragment.java
com.handmark.pulltorefresh.library.AlphaAnimator.java
com.handmark.pulltorefresh.library.GoogleStyleProgressLayoutFactory.java
com.handmark.pulltorefresh.library.GoogleStyleProgressLayout.java
com.handmark.pulltorefresh.library.GoogleStyleViewLayoutFactory.java
com.handmark.pulltorefresh.library.GoogleStyleViewLayout.java
com.handmark.pulltorefresh.library.IGoogleStyleProgressLayout.java
com.handmark.pulltorefresh.library.IGoogleStyleViewLayout.java
com.handmark.pulltorefresh.library.IIndicatorLayout.java
com.handmark.pulltorefresh.library.ILoadingLayout.java
com.handmark.pulltorefresh.library.IPullToRefreshConsumer.java
com.handmark.pulltorefresh.library.IPullToRefresh.java
com.handmark.pulltorefresh.library.IndicatorLayoutFactory.java
com.handmark.pulltorefresh.library.LoadingLayoutFactory.java
com.handmark.pulltorefresh.library.LoadingLayoutProxy.java
com.handmark.pulltorefresh.library.OverscrollHelper.java
com.handmark.pulltorefresh.library.PullToRefreshAdapterViewBase.java
com.handmark.pulltorefresh.library.PullToRefreshBase.java
com.handmark.pulltorefresh.library.PullToRefreshExpandableListView.java
com.handmark.pulltorefresh.library.PullToRefreshGridView.java
com.handmark.pulltorefresh.library.PullToRefreshHorizontalScrollView.java
com.handmark.pulltorefresh.library.PullToRefreshIndexableListView.java
com.handmark.pulltorefresh.library.PullToRefreshListView.java
com.handmark.pulltorefresh.library.PullToRefreshScrollView.java
com.handmark.pulltorefresh.library.PullToRefreshWebView.java
com.handmark.pulltorefresh.library.StringMatcher.java
com.handmark.pulltorefresh.library.extras.IndexScroller.java
com.handmark.pulltorefresh.library.extras.IndexableListView.java
com.handmark.pulltorefresh.library.extras.PullToRefreshWebView2.java
com.handmark.pulltorefresh.library.extras.SoundPullEventListener.java
com.handmark.pulltorefresh.library.internal.AbstractDefaultGoogleStyleViewLayout.java
com.handmark.pulltorefresh.library.internal.Assert.java
com.handmark.pulltorefresh.library.internal.DefaultGoogleStyleProgressLayout.java
com.handmark.pulltorefresh.library.internal.DefaultGoogleStyleViewLayout.java
com.handmark.pulltorefresh.library.internal.DefaultIndicatorLayout.java
com.handmark.pulltorefresh.library.internal.EmptyViewMethodAccessor.java
com.handmark.pulltorefresh.library.internal.FlipLoadingLayout.java
com.handmark.pulltorefresh.library.internal.FlippedProgressBar.java
com.handmark.pulltorefresh.library.internal.IndicatorLayout.java
com.handmark.pulltorefresh.library.internal.LoadingLayout.java
com.handmark.pulltorefresh.library.internal.PullingProgressLayout.java
com.handmark.pulltorefresh.library.internal.RotateLoadingLayout.java
com.handmark.pulltorefresh.library.internal.Utils.java
com.handmark.pulltorefresh.library.internal.ViewCompat.java