⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 featuretypeschema.java

📁 电子地图服务器,搭建自己的地图服务
💻 JAVA
字号:
/* Copyright (c) 2001 - 2007 TOPP - www.openplans.org. All rights reserved.
 * This code is licensed under the GPL 2.0 license, availible at the root
 * application directory.
 */
package org.geoserver.wfs.xml;

import org.eclipse.xsd.XSDSchema;
import org.geoserver.platform.GeoServerResourceLoader;
import org.geoserver.wfs.WFS;
import org.vfny.geoserver.global.Data;
import org.vfny.geoserver.global.FeatureTypeInfo;
import java.io.IOException;


/**
 * An xml schema describing a wfs feature type.
 *
 * @author Justin Deoliveira, The Open Planning Project
 *
 */
public abstract class FeatureTypeSchema {
    /**
     * The feature type metadata object.
     */
    protected FeatureTypeInfo featureType;

    /**
     * The xsd schema builder.
     */
    protected FeatureTypeSchemaBuilder builder;

    /**
     * The catalog
     */
    protected Data catalog;

    /**
     * WFS configuration
     */
    protected WFS wfs;

    /**
     * resource loader
     */
    protected GeoServerResourceLoader loader;

    protected FeatureTypeSchema(FeatureTypeInfo featureType, WFS wfs, Data catalog,
        GeoServerResourceLoader loader) {
        this.featureType = featureType;
        this.catalog = catalog;
        this.wfs = wfs;
        this.loader = loader;
    }

    /**
     * @return The feautre type info.
     */
    FeatureTypeInfo getFeatureType() {
        return featureType;
    }

    /**
     * @return The {@link XSDSchema} representation of the schema.
     */
    public XSDSchema schema(String baseUrl) throws IOException {
        return builder.build(new FeatureTypeInfo[] { featureType }, baseUrl);
    }

    /**
     * Converts the schema to a gml2 schema.
     * @param baseUrl is the prefix-base to use for self-referencing urls.
     */
    public FeatureTypeSchema toGML2() {
        if (this instanceof GML2) {
            return this;
        }

        return new GML2(featureType, wfs, catalog, loader);
    }

    /**
     * Converts the schema to a gml3 schema.
     */
    public FeatureTypeSchema toGML3() {
        if (this instanceof GML3) {
            return this;
        }

        return new GML3(featureType, wfs, catalog, loader);
    }

    /**
     * GML2 based wfs feature type schema.
     *
     * @author Justin Deoliveira, The Open Planning Project
     */
    public static final class GML2 extends FeatureTypeSchema {
        public GML2(FeatureTypeInfo featureType, WFS wfs, Data catalog,
            GeoServerResourceLoader loader) {
            super(featureType, wfs, catalog, loader);
            builder = new FeatureTypeSchemaBuilder.GML2(wfs, catalog, loader);
        }
    }

    /**
     * GML3 based wfs feature type schema.
     *
     * @author Justin Deoliveira, The Open Planning Project
     */
    public static final class GML3 extends FeatureTypeSchema {
        protected GML3(FeatureTypeInfo featureType, WFS wfs, Data catalog,
            GeoServerResourceLoader loader) {
            super(featureType, wfs, catalog, loader);
            builder = new FeatureTypeSchemaBuilder.GML3(wfs, catalog, loader);
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -