Examples of VirtualTable


Examples of org.geotools.jdbc.VirtualTable

    FeatureTypeInfo tinfo;

    public SQLViewEditPage(FeatureTypeInfo type, ResourceConfigurationPage previousPage) throws IOException {
        super(type.getStore().getWorkspace().getName(), type.getStore().getName(), type.getName(),
                type.getMetadata().get(FeatureTypeInfo.JDBC_VIRTUAL_TABLE, VirtualTable.class));
        VirtualTable vt =  type.getMetadata().get(FeatureTypeInfo.JDBC_VIRTUAL_TABLE, VirtualTable.class);
        tinfo = type;
        originalName = vt.getName();
        this.previusPage = previousPage;
    }
View Full Code Here

Examples of org.geotools.jdbc.VirtualTable

    }

    @Override
    protected void onSave() {
        try {
            VirtualTable vt = buildVirtualTable();
            SimpleFeatureType rawFeatureType = getFeatureType(vt);
           
            // update the feature type info
            tinfo.getMetadata().put(FeatureTypeInfo.JDBC_VIRTUAL_TABLE, vt);
            CoordinateReferenceSystem crs = rawFeatureType.getCoordinateReferenceSystem();
            if(crs != null) {
                tinfo.setNativeCRS(crs);
            }
            tinfo.setNativeName(vt.getName());
           
            // set it back in the main page and redirect to it
            previusPage.updateResource(tinfo);
            setResponsePage(previusPage);
        } catch (Exception e) {
View Full Code Here

Examples of org.geotools.jdbc.VirtualTable

        FeatureTypeInfo tft = cb.buildFeatureType(featureStore);
        cat.add(tft);

        // create the sql view
        JDBCDataStore jds = (JDBCDataStore) ds.getDataStore(null);
        VirtualTable vt = new VirtualTable("pgeo_view", "select \"name\", \"pointProperty\" from \"pgeo\" where \"booleanProperty\" = %bool% and \"name\" = '%name%'");
        vt.addParameter(new VirtualTableParameter("bool", "true"));
        vt.addParameter(new VirtualTableParameter("name", "name-f001"));
        vt.addGeometryMetadatata("pointProperty", Point.class, 4326);
        jds.addVirtualTable(vt);

        FeatureTypeInfo vft = cb.buildFeatureType(jds.getFeatureSource(vt.getName()));
        vft.getMetadata().put(FeatureTypeInfo.JDBC_VIRTUAL_TABLE, vt);
        cat.add(vft);
    }
View Full Code Here

Examples of org.geotools.jdbc.VirtualTable

    }

    @Override
    protected void onSave() {
        try {
            VirtualTable vt = buildVirtualTable();
            DataStoreInfo dsInfo = getCatalog().getStore(storeId, DataStoreInfo.class);
            JDBCDataStore ds = (JDBCDataStore) dsInfo.getDataStore(null);
            ds.addVirtualTable(vt);

            CatalogBuilder builder = new CatalogBuilder(getCatalog());
            builder.setStore(dsInfo);
            FeatureTypeInfo fti = builder.buildFeatureType(ds.getFeatureSource(vt.getName()));
            fti.getMetadata().put(FeatureTypeInfo.JDBC_VIRTUAL_TABLE, vt);
            LayerInfo layerInfo = builder.buildLayer(fti);
            setResponsePage(new ResourceConfigurationPage(layerInfo, true));
        } catch (Exception e) {
            LOGGER.log(Level.SEVERE, "Failed to create feature type", e);
View Full Code Here

Examples of org.geotools.jdbc.VirtualTable

    @Override
    public boolean initialize(FeatureTypeInfo info,
            DataAccess<? extends FeatureType, ? extends Feature> dataAccess, Name temporaryName)
            throws IOException {
        JDBCDataStore jstore = (JDBCDataStore) dataAccess;
        VirtualTable vt = info.getMetadata().get(FeatureTypeInfo.JDBC_VIRTUAL_TABLE,
                VirtualTable.class);

        FeatureType ft = null;
        // building the virtual table structure is expensive, see if the VT is already registered in
        // the db
        if (jstore.getVirtualTables().containsValue(vt)) {
            // if the virtual table is already registered in the store (and equality in the test
            // above guarantees the structure is the same), we can just get the schema from it
            // directly
            ft = jstore.getSchema(vt.getName());
            // paranoid check: make sure nobody changed the vt structure while we fetched
            // the data (rather unlikely, even more unlikely would be
            if (!jstore.getVirtualTables().containsValue(vt)) {
                ft = null;
            }
        }

        if (ft == null) {
            if (temporaryName != null) {
                jstore.createVirtualTable(new VirtualTable(temporaryName.getLocalPart(), vt));
                return true;
            } else {
                jstore.createVirtualTable(vt);
            }
        }
View Full Code Here

Examples of org.geotools.jdbc.VirtualTable

    class VirtualTableConverter implements Converter {

        public void marshal(Object source, HierarchicalStreamWriter writer,
                MarshallingContext context) {
            VirtualTable vt = (VirtualTable) source;
            writer.startNode("name");
            writer.setValue(vt.getName());
            writer.endNode();
            writer.startNode("sql");
            writer.setValue(vt.getSql());
            writer.endNode();
            writer.startNode("escapeSql");
            writer.setValue(Boolean.toString(vt.isEscapeSql()));
            writer.endNode();
            if(vt.getPrimaryKeyColumns() != null) {
                for(String pk : vt.getPrimaryKeyColumns()) {
                    writer.startNode("keyColumn");
                    writer.setValue(pk);
                    writer.endNode();
                }
            }
            if(vt.getGeometries() != null) {
                for (String geom : vt.getGeometries()) {
                    writer.startNode("geometry");
                    writer.startNode("name");
                    writer.setValue(geom);
                    writer.endNode();
                    writer.startNode("type");
                    writer.setValue(Geometries.getForBinding(vt.getGeometryType(geom)).getName());
                    writer.endNode();
                    writer.startNode("srid");
                    writer.setValue(String.valueOf(vt.getNativeSrid(geom)));
                    writer.endNode();
                    writer.endNode();
                }
            }
            if(vt.getParameterNames().size() > 0) {
                for(String name : vt.getParameterNames()) {
                    VirtualTableParameter param = vt.getParameter(name);
                    writer.startNode("parameter");
                    writer.startNode("name");
                    writer.setValue(name);
                    writer.endNode();
                    if(param.getDefaultValue() != null) {
View Full Code Here

Examples of org.geotools.jdbc.VirtualTable

        public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
            String name = readValue("name", String.class, reader);
            String sql = readValue("sql", String.class, reader);
               
            VirtualTable vt = new VirtualTable(name, sql, false);
            List<String> primaryKeys = new ArrayList<String>();
            while(reader.hasMoreChildren()) {
                reader.moveDown();
                if(reader.getNodeName().equals("keyColumn")) {
                    primaryKeys.add(reader.getValue());
                } else if(reader.getNodeName().equals("geometry")) {
                    String geomName = readValue("name", String.class, reader);
                    Geometries geomType = Geometries.getForName(readValue("type", String.class, reader));
                    Class type = geomType == null ? Geometry.class : geomType.getBinding();
                    int srid = readValue("srid", Integer.class, reader);
                    vt.addGeometryMetadatata(geomName, type, srid);
                } else if(reader.getNodeName().equals("parameter")) {
                    String pname = readValue("name", String.class, reader);
                    String defaultValue = null;
                    Validator validator = null;
                    while(reader.hasMoreChildren()) {
                        reader.moveDown();
                        if(reader.getNodeName().equals("defaultValue")) {
                            defaultValue = reader.getValue();
                        } else if(reader.getNodeName().equals("regexpValidator")) {
                            validator = new RegexpValidator(reader.getValue());
                        }
                        reader.moveUp();
                    }
                   
                    vt.addParameter(new VirtualTableParameter(pname, defaultValue, validator));
                } else if(reader.getNodeName().equals("escapeSql")) {
                vt.setEscapeSql(Boolean.valueOf(reader.getValue()));
                }
                reader.moveUp();
            }
            vt.setPrimaryKeyColumns(primaryKeys);
           
            return vt;
        }
View Full Code Here

Examples of org.geotools.jdbc.VirtualTable

        assertEquals(source, copy);
    }
   
    @Test
    public void testByCopyConstructor() {
        VirtualTable source = new VirtualTable("test", "select * from tables");
        VirtualTable copy = ModificationProxyCloner.clone(source);
        assertNotSame(source, copy);
        assertEquals(source, copy);
    }
View Full Code Here

Examples of org.geotools.jdbc.VirtualTable

            do {
                vtName = UUID.randomUUID().toString();
            } while (Arrays.asList(ds.getTypeNames()).contains(vtName));

            // try adding the vt and see if that works
            VirtualTable vt = new VirtualTable(vtName, sql);
            paramProvider.updateVirtualTable(vt);
            ds.addVirtualTable(vt);
            return guessFeatureType(ds, vt.getName(), guessGeometrySrid);
        } finally {
            if(vtName != null) {
                ds.removeVirtualTable(vtName);
            }
           
View Full Code Here

Examples of org.geotools.jdbc.VirtualTable

            do {
                vtName = UUID.randomUUID().toString();
            } while (Arrays.asList(ds.getTypeNames()).contains(vtName));

            // try adding the vt and see if that works
            ds.addVirtualTable(new VirtualTable(vtName, vt));
            return ds.getSchema(vtName);
        } finally {
            if(vtName != null) {
                ds.removeVirtualTable(vtName);
            }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.