001: /*
002: * $Id: AbstractCharactersEvent.java,v 1.3 2004/07/15 02:11:02 cniles Exp $
003: *
004: * Copyright (c) 2004, Christian Niles, unit12.net
005: * All rights reserved.
006: *
007: * Redistribution and use in source and binary forms, with or without
008: * modification, are permitted provided that the following conditions are met:
009: *
010: * * Redistributions of source code must retain the above copyright
011: * notice, this list of conditions and the following disclaimer.
012: *
013: * * Redistributions in binary form must reproduce the above copyright
014: * notice, this list of conditions and the following disclaimer in the
015: * documentation and/or other materials provided with the distribution.
016: *
017: * * Neither the name of Christian Niles, Unit12, nor the names of its
018: * contributors may be used to endorse or promote products derived from
019: * this software without specific prior written permission.
020: *
021: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
022: * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
023: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
024: * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
025: * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
026: * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
027: * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
028: * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
029: * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
030: * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
031: * POSSIBILITY OF SUCH DAMAGE.
032: *
033: */
034: package javanet.staxutils.events;
035:
036: import javax.xml.namespace.QName;
037: import javax.xml.stream.Location;
038: import javax.xml.stream.events.Characters;
039:
040: /**
041: * Abstract base class for various {@link Characters} implementations.
042: *
043: * @author Christian Niles
044: * @version $Revision: 1.3 $
045: */
046: public abstract class AbstractCharactersEvent extends AbstractXMLEvent
047: implements Characters {
048:
049: /** Character content. */
050: protected String data;
051:
052: public AbstractCharactersEvent(String data) {
053:
054: this .data = data;
055:
056: }
057:
058: public AbstractCharactersEvent(String data, Location location) {
059:
060: super (location);
061: this .data = data;
062:
063: }
064:
065: public AbstractCharactersEvent(String data, Location location,
066: QName schemaType) {
067:
068: super (location, schemaType);
069: this .data = data;
070:
071: }
072:
073: public AbstractCharactersEvent(Characters that) {
074:
075: super (that);
076: this .data = that.getData();
077:
078: }
079:
080: public String getData() {
081:
082: return data;
083:
084: }
085:
086: public boolean isCharacters() {
087:
088: return true;
089:
090: }
091:
092: public boolean isWhiteSpace() {
093:
094: String data = getData();
095: for (int i = 0, s = data.length(); i < s; i++) {
096:
097: switch (data.charAt(i)) {
098:
099: case ' ':
100: case '\n':
101: case '\t':
102: case '\r':
103: continue;
104: default:
105: return false;
106:
107: }
108:
109: }
110:
111: return true;
112:
113: }
114:
115: }
|