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

📄 geometryfacadebean.java

📁 postGIS是一个能够使用postSQL数据库来管理GIS数据的小程序,充分发挥了该数据库的空间管理功能,非常有用哦
💻 JAVA
字号:
/* * GeometryFacadeBean.java * * Using PostGIS Geometry Types with EJB2 - Proof of Concept * * Copyright 2006, Geodetix S.r.l. (http://www.geodetix.it) * and individual contributors as indicated by the @authors tag. * * * 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, either 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. * * You should have received a copy of the GNU Lesser General Public License * along with this library; if not, write to the Free Software Foundation, Inc., * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at * http://www.gnu.org. * */package com.geodetix.geo.ejb;import com.geodetix.geo.exception.ApplicationGeoLayerException;import com.geodetix.geo.interfaces.GeometryLocalHome;import com.geodetix.geo.interfaces.GeometryLocal;import com.geodetix.geo.util.GeometryUtil;import com.geodetix.geo.value.GeometryValue;import org.apache.commons.logging.*;import org.postgis.*;import java.rmi.*;import java.util.*;import javax.ejb.*;import javax.naming.*;/** * A SessionFacade for managing Geometry beans. * * @ejb.bean *     name="GeometryFacade" *     jndi-name="geodetix/geo/GeometryFacade" *     local-jndi-name="geodetix/geo/GeometryFacadeLocal" *     type="Stateless" *     view-type="both" *     transaction-type="Container" * * @ejb.ejb-ref *     ejb-name="Geometry" *     view-type="local" *     ref-name="ejb/GeometryLocal" * * @author  <a href="mailto:antonio.pace@geodetix.it">Antonio Pace</a> */public abstract class GeometryFacadeBean implements SessionBean {    private SessionContext ctx;            /**     * EJB Initializer.     *     * @ejb.create-method     */    public void ejbCreate() throws CreateException {}        /**     * Called after the EJB creation.     */    public void ejbPostCreate() throws CreateException {}        /**     * Save the EJB session context.     */    public void setSessionContext(SessionContext ctx)    throws EJBException, RemoteException {        this.ctx = ctx;    }                  /* ============ Finder Methods ============== */        /**     * Find all of the geometry beans contained in a <code>Polygon</code>.     *     * @ejb.interface-method     *     * @param polygon The Polygon to search in.     */    public Collection findByPolygon(org.postgis.Polygon polygon)    throws ApplicationGeoLayerException {        try {            GeometryLocalHome geometryHome = GeometryUtil.getLocalHome();            Collection       geometries    = geometryHome.findByPolygon(polygon);                        List result = new ArrayList();                        for (Iterator iter = geometries.iterator(); iter.hasNext(); ) {                GeometryLocal geometry = (GeometryLocal) iter.next();                                result.add(geometry.getGeometryValue());            }                        return result;                    } catch (NamingException e) {            throw new ApplicationGeoLayerException(e);        } catch (FinderException e) {            throw new ApplicationGeoLayerException(e);        }    }                        /* =============== Business Iinterfaces Methods ============= */            /**     * Creates a new Geometry Bean.     *     * @ejb.interface-method     *     * @param geometry the <code>org.postgis.Geometry</code> that has to be      * included in this EJB.     * @param description the textual description of this bean.     * @return a value object representing the created EJB.     */    public GeometryValue createGeometry(org.postgis.Geometry geometry, String description)    throws ApplicationGeoLayerException {        try {            GeometryLocalHome geometryHome  = GeometryUtil.getLocalHome();            GeometryLocal     geometryLocal =                    geometryHome.create(geometry,description);                        return geometryLocal.getGeometryValue();        } catch (NamingException e) {            throw new ApplicationGeoLayerException(e);        } catch (CreateException e) {            throw new ApplicationGeoLayerException(e);        }    }                        /* ================== BMP Utility Methods ================= */                /**     * Create a non-OpenGIS DataBase table used to persist the Geometry Beans.     * <em>Note that in a real-world application this method should be protected     * by using a role-based security policy.</em>     *     * @ejb.interface-method     *     * @throws ApplicationGeoLayerException thrown if an error occours      * during table creation.     */    public void createGeometryTable() throws ApplicationGeoLayerException {        try {            GeometryLocalHome geometryHome = GeometryUtil.getLocalHome();                        geometryHome.makeDbTable();        } catch (NamingException e) {            throw new ApplicationGeoLayerException(e);        } catch (Exception e) {            throw new ApplicationGeoLayerException(e);        }    }            /**     * Create an OpenGIS compliant database table used to persist the      * Geometry Beans.     * <em>Note that in a real-world application this method should be protected     * by using a role-based security policy.</em>     *     * @ejb.interface-method     *     * @throws ApplicationGeoLayerException thrown if an error occours      * during table creation.     */    public void createGeometryTable(String gemetryType, int srid, int geometryDimension )    throws ApplicationGeoLayerException {        try {            GeometryLocalHome geometryHome = GeometryUtil.getLocalHome();                        geometryHome.makeDbTable(gemetryType, srid,  geometryDimension);                    } catch (NamingException e) {            throw new ApplicationGeoLayerException(e);        } catch (Exception e) {            throw new ApplicationGeoLayerException(e);        }    }                /**     * Remove the EJB's persistence table from the database.     * <em>Note that in a real-world application this method should be protected     * by using a role-based security policy.</em>     *     * @ejb.interface-method     *     * @throws ApplicationGeoLayerException thrown if an error occours      * during table creation.     */    public void dropGeometryTable() throws ApplicationGeoLayerException {        try {            GeometryLocalHome geometryHome = GeometryUtil.getLocalHome();                        geometryHome.dropDbTable();        } catch (NamingException e) {            throw new ApplicationGeoLayerException(e);        } catch (Exception e) {            throw new ApplicationGeoLayerException(e);        }    }            }

⌨️ 快捷键说明

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