/*
* 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.data.wms.xml;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Collections;
import java.util.Map;
import org.geotools.xml.gml.GMLSchema;
import org.geotools.xml.schema.Attribute;
import org.geotools.xml.schema.AttributeGroup;
import org.geotools.xml.schema.ComplexType;
import org.geotools.xml.schema.Element;
import org.geotools.xml.schema.Group;
import org.geotools.xml.schema.Schema;
import org.geotools.xml.schema.SimpleType;
public class OGCSchema implements Schema {
private static OGCSchema instance = new OGCSchema();
protected OGCSchema() {
//do nothing
}
public static OGCSchema getInstance() {
return instance;
}
public static final URI NAMESPACE = loadNS();
private static URI loadNS() {
try {
return new URI("http://www.opengis.net/ows");
} catch (URISyntaxException e) {
return null;
}
}
public int getBlockDefault() {
return 0;
}
public int getFinalDefault() {
return 0;
}
public String getId() {
return "null";
}
private static Schema[] imports = null;
public Schema[] getImports() {
if (imports == null) {
imports = new Schema[]{
GMLSchema.getInstance()
};
}
return imports;
}
public String getPrefix() {
return "ogc";
}
public URI getTargetNamespace() {
return NAMESPACE;
}
public URI getURI() {
return NAMESPACE;
}
public String getVersion() {
return "null";
}
public boolean includesURI( URI uri ) {
// // TODO fill me in!
return false; // // safer
}
public boolean isAttributeFormDefault() {
return false;
}
public boolean isElementFormDefault() {
return false;
}
public AttributeGroup[] getAttributeGroups() {
return null;
}
public Attribute[] getAttributes() {
return null;
}
/**
* TODO comment here
*/
private static ComplexType[] complexTypes = null;
public ComplexType[] getComplexTypes() {
if (complexTypes == null) {
complexTypes = new ComplexType[]{ogcComplexTypes.VendorType.getInstance()};
}
return complexTypes;
}
/**
* TODO comment here
*/
private static Element[] elements = null;
public static final int GET_CAPABILITIES = 0;
public static final int GET_MAP = 1;
public static final int GET_FEATURE_INFO = 2;
public Element[] getElements() {
if (elements == null) {
elements = new Element[3];
elements[GET_CAPABILITIES] = new ogcElement("GetCapabilities",ogcComplexTypes._GetCapabilities.getInstance(),null,1,1);
elements[GET_MAP] = new ogcElement("GetMap", ogcComplexTypes._GetMap.getInstance(), null, 1, 1);
elements[GET_FEATURE_INFO] = new ogcElement("ogc:GetFeatureInfo", ogcComplexTypes._GetFeatureInfo.getInstance(), null, 1, 1);
}
return elements;
}
public Group[] getGroups() {
return null;
}
/**
* TODO comment here
*/
private static SimpleType[] simpleTypes = null;
public SimpleType[] getSimpleTypes() {
if (simpleTypes == null) {
simpleTypes = new SimpleType[]{
ogcSimpleTypes.CapabilitiesSectionType.getInstance(),
ogcSimpleTypes.FormatType.getInstance(),
ogcSimpleTypes.OWSType.getInstance(),
ogcSimpleTypes.ExceptionsType.getInstance()};
}
return simpleTypes;
}
/**
* Returns the implementation hints. The default implementation returns en empty map.
*/
public Map getImplementationHints() {
return Collections.EMPTY_MAP;
}
}