⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 parseevent.java

📁 该源码是一个J2ME项目
💻 JAVA
字号:
/* kXML
 *
 * The contents of this file are subject to the Enhydra Public License
 * Version 1.1 (the "License"); you may not use this file except in
 * compliance with the License. You may obtain a copy of the License
 * on the Enhydra web site ( http://www.enhydra.org/ ).
 *
 * Software distributed under the License is distributed on an "AS IS"
 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
 * the License for the specific terms governing rights and limitations
 * under the License.
 *
 * The Initial Developer of kXML is Stefan Haustein. Copyright (C)
 * 2000, 2001 Stefan Haustein, D-46045 Oberhausen (Rhld.),
 * Germany. All Rights Reserved.
 *
 * Contributor(s): Paul Palaszewski, Wilhelm Fitzpatrick,
 *                 Eric Foster-Johnson
 *
 * */

package org.kxml.parser;

import java.util.*;

import org.kxml.*;

/** Abstract superclass for all pull parser events.  In order to avoid
    some typecasts, this class already provides most of the content
    access methods filled in the specialized subclasses.  */

public class ParseEvent
{

  static final String WRONG_TYPE =
        "Method not supported for the given event type!";

  int lineNumber = -1;
  int type;
  String text;

  public ParseEvent(int type, String text)
  {
    this.type = type;
    this.text = text;
  }

  /** returns the line number of the event */

  public int getLineNumber()
  {
    return lineNumber;
  }

  /** returns the event type integer constant assigned to this
      event.  Possible event types are Xml.START_TAG, Xml.END_TAG,
      Xml.TEXT, Xml.PROCESSING_INSTRUCTION, Xml.COMMENT,
      Xml.DOCTYPE, and Xml.END_DOCUMENT */

  public int getType()
  {
    return type;
  }

  /** sets the line number of the event. Used by the parser only. */

  public void setLineNumber(int lineNumber)
  {
    this.lineNumber = lineNumber;
  }

  /** In the event type is START_TAG, this method returns the attribute
      at the given index position. For all other event
      types, or if the index is out of range, an exception is thrown. */

  public Attribute getAttribute(int index)
  {
    return (Attribute) getAttributes().elementAt(index);
  }

  /** returns the local attribute with the given name.  convenience
    method for getAttribute (Xml.NO_NAMESPACE, name); */

  public Attribute getAttribute(String name)
  {
    return getAttribute(Xml.NO_NAMESPACE, name);
  }

  /** returns the local attribute with the given qualified name.
      Please use null as placeholder for any namespace or
      Xml.NO_NAMESPACE for no namespace. */

  public Attribute getAttribute(String namespace, String name)
  {

    Vector attributes = getAttributes();
    int len = getAttributeCount();

    for (int i = 0; i < len; i++)
    {
      Attribute attr = (Attribute) attributes.elementAt(i);

      if (attr.getName().equals(name)
          && (namespace == null || namespace.equals(attr.getNamespace())))
      {

        return attr;
      }
    }

    return null;
  }

  /** If the event type is START_TAG, the number of attributes is
    returned. For all other event types, an exception is thrown. */

  public int getAttributeCount()
  {
    Vector a = getAttributes();
    return a == null ? 0 : a.size();
  }

  /** If the event type is START_TAG, the attribute Vector (null if
    no attributes) is returned. For all other event types, an
    exception is thrown. */

  public Vector getAttributes()
  {
    throw new RuntimeException(WRONG_TYPE);
  }

  /** returns the (local) name of the element started if
      instance of StartTag, null otherwise. */

  public String getName()
  {
    return null;
  }

  /** returns namespace if instance of StartTag, null
      otherwise. */

  public String getNamespace()
  {
    return null;
  }

  /** Returns the value of the attribute with the given name.
    Throws an exception if not instanceof StartTag or if not
    existing. In order to get a null value for not existing
    attributes, please call getValueDefault (attrName, null)
    instead. */

  public String getValue(String attrName)
  {
    Attribute attr = getAttribute(attrName);
    if (attr == null)
    {
      throw new RuntimeException
            ("Attribute " + attrName + " in " + this +" expected!");
    }
    return attr.getValue();
  }

  /** Returns the given attribute value, or the given default value
    if the attribute is not existing. */

  public String getValueDefault(String attrName, String deflt)
  {
    Attribute attr = getAttribute(attrName);
    return attr == null ? deflt : attr.getValue();
  }

  /** If the event type is TEXT, PROCESSING_INSTRUCTION,
    or DOCTYPE, the corresponding string is returned. For
    all othe event types, null is returned. */

  public String getText()
  {
    return text;
  }

  public String toString()
  {
    return "ParseEvent type=" + type + " text='" + text + "'";
  }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -