package com.aptana.ruby.internal.debug.core.parsing; import java.io.IOException; import com.aptana.ruby.debug.core.RubyDebugCorePlugin; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; public class SingleReaderStrategy extends AbstractReadStrategy { public SingleReaderStrategy(XmlPullParser xpp) { super(xpp); } public void readElement(XmlStreamReader streamReader) throws XmlPullParserException, IOException, XmlStreamReaderException { int eventType = xpp.getEventType(); do { if (eventType == XmlPullParser.START_DOCUMENT) { RubyDebugCorePlugin.debug("Start document"); //$NON-NLS-1$ } else if (eventType == XmlPullParser.END_DOCUMENT) { RubyDebugCorePlugin.debug("End document"); //$NON-NLS-1$ break ; } else if (eventType == XmlPullParser.START_TAG) { streamReader.processStartElement(xpp); } else if (eventType == XmlPullParser.END_TAG) { streamReader.processEndElement(xpp); if (xpp.getDepth() == 1) { break ; } } else if (eventType == XmlPullParser.TEXT) { //processText(xpp); } eventType = xpp.next(); } while (true); } @Override public void readElement(XmlStreamReader streamReader, long maxWaitTime) throws XmlPullParserException, IOException, XmlStreamReaderException { readElement(streamReader) ; } @Override public boolean isConnected() { return true; } }