/*
* GeoTools - The Open Source Java GIS Toolkit
* http://geotools.org
*
* (C) 2002-2008, Open Source Geospatial Foundation (OSGeo)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*/
package org.geotools.xml.impl;
import org.eclipse.xsd.XSDSchemaContent;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.xml.namespace.QName;
import org.geotools.xml.InstanceComponent;
import org.geotools.xml.Node;
public class DocumentHandlerImpl extends HandlerImpl implements DocumentHandler {
/** factory used to create a handler for the root element **/
HandlerFactory factory;
/** root node of the parse tree */
Node tree;
//ElementHandler handler;
/** the parser */
ParserHandler parser;
public DocumentHandlerImpl(HandlerFactory factory, ParserHandler parser) {
this.factory = factory;
this.parser = parser;
}
public XSDSchemaContent getSchemaContent() {
return null;
}
public InstanceComponent getComponent() {
return null;
}
public Object getValue() {
//jsut return the root of the parse tree's value
if (tree != null) {
return tree.getValue();
}
// //just return the root handler value
// if (handler != null) {
// return handler.getValue();
// }
return null;
}
public Node getParseNode() {
return tree;
}
public Handler createChildHandler(QName qName) {
return factory.createElementHandler(qName, this, parser);
}
// public List getChildHandlers() {
// if ( handler == null ) {
// return Collections.EMPTY_LIST;
// }
//
// ArrayList list = new ArrayList();
// list.add( handler );
//
// return list;
// }
public void startChildHandler(Handler child) {
this.tree = child.getParseNode();
//this.handler = (ElementHandler) child;
}
public void endChildHandler(Handler child) {
//this.handler = null;
}
public Handler getParentHandler() {
//always null, this is the root handler
return null;
}
// public ElementHandler getDocumentElementHandler() {
// return handler;
// }
public void startDocument() {
}
public void endDocument() {
}
}