/*
* GeoTools - The Open Source Java GIS Toolkit
* http://geotools.org
*
* (C) 2004-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.schema.impl;
import java.io.IOException;
import java.net.URI;
import java.util.Map;
import javax.naming.OperationNotSupportedException;
import org.geotools.xml.PrintHandler;
import org.geotools.xml.schema.Attribute;
import org.geotools.xml.schema.ComplexType;
import org.geotools.xml.schema.Element;
import org.geotools.xml.schema.ElementGrouping;
import org.geotools.xml.schema.ElementValue;
import org.geotools.xml.schema.Schema;
import org.geotools.xml.schema.Type;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
/**
* Provides ...TODO summary sentence
* <p>
* TODO Description
* </p><p>
* Responsibilities:
* <ul>
* <li>
* <li>
* </ul>
* </p><p>
* Example Use:<pre><code>
* ComplexTypeGT x = new ComplexTypeGT( ... );
* TODO code example
* </code></pre>
* </p>
* @author dzwiers
* @since 0.3
* @source $URL$
*/
public class ComplexTypeGT implements ComplexType {
private String name = null, id = null, anyAtrNS = null;
private URI ns;
private Type parent = null;
private Attribute[] attrs = null;
private Element[] elems = null;
private ElementGrouping child = null;
private boolean _abstract,mixed,derived;
/**
* Construct <code>ComplexTypeGT</code>.
*
* @param id
* @param name
* @param namespace
* @param child
* @param attrs
* @param elems
* @param mixed
* @param parent
* @param _abstract
* @param derived
* @param anyAttributeNS
*/
public ComplexTypeGT(String id, String name, URI namespace, ElementGrouping child, Attribute[] attrs,
Element[] elems,boolean mixed, Type parent, boolean _abstract, boolean derived, String anyAttributeNS){
this.name = name;this.id = id;this.anyAtrNS = anyAttributeNS;
this.ns = namespace;this.parent = parent;
this.attrs = attrs;this.elems = elems;this.child = child;
this._abstract = _abstract;this.mixed = mixed; this.derived = derived;
}
/**
* TODO summary sentence for getParent ...
*
* @see org.geotools.xml.schema.ComplexType#getParent()
*/
public Type getParent() {
return parent;
}
/**
* TODO summary sentence for isAbstract ...
*
* @see org.geotools.xml.schema.ComplexType#isAbstract()
*/
public boolean isAbstract() {
return _abstract;
}
/**
* TODO summary sentence for getAnyAttributeNameSpace ...
*
* @see org.geotools.xml.schema.ComplexType#getAnyAttributeNameSpace()
*/
public String getAnyAttributeNameSpace() {
return anyAtrNS;
}
/**
* TODO summary sentence for getAttributes ...
*
* @see org.geotools.xml.schema.ComplexType#getAttributes()
*/
public Attribute[] getAttributes() {
return attrs;
}
/**
* TODO summary sentence for getBlock ...
*
* @see org.geotools.xml.schema.ComplexType#getBlock()
*/
public int getBlock() {
return Schema.NONE;
}
/**
* TODO summary sentence for getChild ...
*
* @see org.geotools.xml.schema.ComplexType#getChild()
*/
public ElementGrouping getChild() {
return child;
}
/**
* TODO summary sentence for getChildElements ...
*
* @see org.geotools.xml.schema.ComplexType#getChildElements()
*/
public Element[] getChildElements() {
return elems;
}
/**
* TODO summary sentence for getFinal ...
*
* @see org.geotools.xml.schema.ComplexType#getFinal()
*/
public int getFinal() {
return Schema.NONE;
}
/**
* TODO summary sentence for getId ...
*
* @see org.geotools.xml.schema.ComplexType#getId()
*/
public String getId() {
return id;
}
/**
* TODO summary sentence for isMixed ...
*
* @see org.geotools.xml.schema.ComplexType#isMixed()
*/
public boolean isMixed() {
return mixed;
}
/**
* TODO summary sentence for isDerived ...
*
* @see org.geotools.xml.schema.ComplexType#isDerived()
*/
public boolean isDerived() {
return derived;
}
/**
* TODO summary sentence for cache ...
*
* @see org.geotools.xml.schema.ComplexType#cache(org.geotools.xml.schema.Element, java.util.Map)
* @param element
* @param hints
*/
public boolean cache( Element element, Map hints ) {
return true;
}
/**
* TODO summary sentence for getValue ...
*
* @see org.geotools.xml.schema.Type#getValue(org.geotools.xml.schema.Element, org.geotools.xml.schema.ElementValue[], org.xml.sax.Attributes, java.util.Map)
* @param element
* @param value
* @param attrs1
* @param hints
* @throws SAXException
* @throws OperationNotSupportedException
* @throws SAXException
*/
public Object getValue( Element element, ElementValue[] value, Attributes attrs1, Map hints ) throws
OperationNotSupportedException, SAXException {
throw new OperationNotSupportedException();
}
/**
* TODO summary sentence for getName ...
*
* @see org.geotools.xml.schema.Type#getName()
*/
public String getName() {
return name;
}
/**
* TODO summary sentence for getNamespace ...
*
* @see org.geotools.xml.schema.Type#getNamespace()
*/
public URI getNamespace() {
return ns;
}
/**
* TODO summary sentence for getInstanceType ...
*
* @see org.geotools.xml.schema.Type#getInstanceType()
*/
public Class getInstanceType() {
return null;
}
/**
* TODO summary sentence for canEncode ...
*
* @see org.geotools.xml.schema.Type#canEncode(org.geotools.xml.schema.Element, java.lang.Object, java.util.Map)
* @param element
* @param value
* @param hints
*/
public boolean canEncode( Element element, Object value, Map hints ) {
return false;
}
/**
* TODO summary sentence for encode ...
*
* @see org.geotools.xml.schema.Type#encode(org.geotools.xml.schema.Element, java.lang.Object, org.geotools.xml.PrintHandler, java.util.Map)
* @param element
* @param value
* @param output
* @param hints
* @throws IOException
* @throws OperationNotSupportedException
*/
public void encode( Element element, Object value, PrintHandler output, Map hints ) throws
OperationNotSupportedException {
throw new OperationNotSupportedException();
}
/**
* TODO summary sentence for findChildElement ...
*
* @see org.geotools.xml.schema.Type#findChildElement(java.lang.String)
* @param name1
*/
public Element findChildElement( String name1 ) {
return getChild()!=null?getChild().findChildElement(name1):null;
}
}