package de.uni_passau.fim.pkjab.model.xmpp;
import java.io.IOException;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import de.uni_passau.fim.pkjab.model.tags.AbstractXMLTag;
import de.uni_passau.fim.pkjab.util.Stack;
abstract class XMPPReaderSubLevel extends XMPPReaderAdapter {
protected static final String ROSTER_URI = "jabber:iq:roster";
private final XMPPReaderAdapter previousHandler;
protected XMPPReaderSubLevel(final XMPPReaderAdapter previousHandler,
final String namespace) {
super(previousHandler.connection, previousHandler.xmlStack, namespace);
this.previousHandler = previousHandler;
}
protected void returnControl() {
connection.setXMPPReader(previousHandler);
}
protected boolean startTopLevel(Stack xmlStack,
AbstractXMLTag thisTag, Attributes atts) throws SAXException {
// believe the creating Handler that this is our tag
return true;
}
protected boolean startChild(Stack xmlStack,
AbstractXMLTag thisTag, Attributes atts) throws SAXException {
return false;
}
protected boolean startGrandchild(Stack xmlStack,
AbstractXMLTag thisTag, Attributes atts) throws SAXException {
return false;
}
protected boolean startFurtherChild(Stack xmlStack,
AbstractXMLTag thisTag, AbstractXMLTag lastTag, Attributes atts)
throws SAXException {
return false;
}
/**
* If overwritten, either call super or returnControl!
*/
protected boolean endTopLevel(AbstractXMLTag thisTag, String content)
throws IOException, SAXException {
returnControl();
return true;
}
protected boolean endChild(Stack xmlStack,
AbstractXMLTag thisTag, String content) throws IOException,
SAXException {
return false;
}
protected boolean endGrandchild(Stack xmlStack,
AbstractXMLTag thisTag, String content)
throws IOException, SAXException {
return false;
}
protected boolean endFurtherChild(Stack xmlStack,
AbstractXMLTag thisTag, AbstractXMLTag lastTag, String content)
throws IOException, SAXException {
return false;
}
}