Package org.geotools.data

Examples of org.geotools.data.FeatureReader


        }

        assertNotNull(key);

        Object keyValue = null;
        FeatureReader r = fs.getReader();
        try {
            assertTrue(r.hasNext());

            SimpleFeature f = (SimpleFeature) r.next();
            keyValue = f.getAttribute(key);
        }
        finally {
            r.close();
        }

        assertNotNull(keyValue);

        FilterFactory ff = CommonFactoryFinder.getFilterFactory();
        Filter filter = ff.equal(ff.property(key), ff.literal(keyValue), false);

        assertEquals(1, fs.getCount(new Query(tname("nonfirst"), filter)));

        try {
            fs.modifyFeatures(key, 10, filter);
            fail("expected exception");
        }
        catch(IllegalArgumentException e) {
        }

        fs.modifyFeatures(new String[]{aname("name"), key, aname("geom")}, new Object[]{"foo", 10, null}, filter);

        try {
            r = fs.getReader(ff.equal(ff.property(key), ff.literal(keyValue), true));
            assertTrue(r.hasNext());

            SimpleFeature f = (SimpleFeature) r.next();
            assertEquals("foo", f.getAttribute(aname("name")));
        }
        finally {
            r.close();
        }
    }
View Full Code Here


        ods.getSchema(ods.getTypeNames()[0]);
        long end = System.currentTimeMillis();
        System.out.println("OGR schema: " + (end - start) / 1000.0);
        DefaultQuery query = new DefaultQuery(ods.getTypeNames()[0]);
        start = System.currentTimeMillis();
        FeatureReader ofr = ods.getFeatureReader(query, Transaction.AUTO_COMMIT);
        while (ofr.hasNext())
            ofr.next();
        ofr.close();
        end = System.currentTimeMillis();
        System.out.println("OGR: " + (end - start) / 1000.0);
    }
View Full Code Here

        long end = System.currentTimeMillis();
        System.out.println("SDS schema: " + (end - start) / 1000.0);

        DefaultQuery query = new DefaultQuery(sds.getTypeNames()[0]);
        start = System.currentTimeMillis();
        FeatureReader sfr = sds.getFeatureReader(query, Transaction.AUTO_COMMIT);
        while (sfr.hasNext())
            sfr.next();
        sfr.close();
        end = System.currentTimeMillis();
        System.out.println("SDS: " + (end - start) / 1000.0);

        System.out.println("Attribute count: " + sds.getSchema().getAttributeCount());
        System.out.println("Feature count: "
View Full Code Here

        OGRDataStore ods = new OGRDataStore(getAbsolutePath(STATE_POP), null, null, ogr);

        assertFeatureTypeEquals(sds.getSchema(), ods.getSchema(sds.getSchema().getTypeName()));

        Query query = new Query(sds.getSchema().getTypeName());
        FeatureReader sfr = sds.getFeatureReader(query, Transaction.AUTO_COMMIT);
        FeatureReader ofr = ods.getFeatureReader(query, Transaction.AUTO_COMMIT);
        SimpleFeature sf = null;
        SimpleFeature of = null;
        while (true) {
            if (!sfr.hasNext()) {
                assertTrue(!ofr.hasNext());
                break;
            }
            sf = (SimpleFeature) sfr.next();
            of = (SimpleFeature) ofr.next();
            for (int i = 0; i < sds.getSchema().getAttributeCount(); i++) {
                Object shapeAtt = sf.getAttribute(i);
                Object ogrAtt = of.getAttribute(i);
                assertEquals(shapeAtt, ogrAtt);
            }
        }
        sfr.close();
        ofr.close();
        sds.dispose();
        ods.dispose();
    }
View Full Code Here

            f.setAttributes(features[i].getAttributes());
            writer.write();
        }
        writer.close();

        FeatureReader reader = ds.getFeatureReader(new Query("testw"), null);
        for (int i = 0; i < features.length; i++) {
            assertTrue(reader.hasNext());
            SimpleFeature f = (SimpleFeature) reader.next();
            for (int j = 0; j < schema.getAttributeCount(); j++) {
                if (f.getAttribute(j) instanceof Geometry) {
                    // this is necessary because geometry equality is
                    // implemented as Geometry.equals(Geometry)
                    Geometry a = (Geometry) f.getAttribute(j);
                    Geometry b = (Geometry) features[i].getAttribute(j);
                    assertTrue(a.equals(b));
                } else {
                    assertEquals(f.getAttribute(j), features[i].getAttribute(j));
                }
            }
        }
        assertFalse(reader.hasNext());
        reader.close();
    }
View Full Code Here

        assertEquals("twenty", f.getAttribute("baz"));
        r.close();
    }
   
    public void testGetFeatureReader() throws Exception {
        FeatureReader r = dataStore.getFeatureReader(new Query("bar"), Transaction.AUTO_COMMIT);
        assertNotNull(r);
       
        assertTrue(r.hasNext());
    }
View Full Code Here

        return dataStore;
    }

    @Override
    public FeatureReader read(ImportData data, ImportTask task) throws IOException {
        FeatureReader reader = getDataStore(data, task).getFeatureReader(
            new Query(task.getOriginalLayerName()), Transaction.AUTO_COMMIT);
        return reader;
    }
View Full Code Here

            (SimpleFeatureType) item.getMetadata().get(FeatureType.class);
        FeatureJSON json = new FeatureJSON();
        json.setFeatureType(featureType);
        final FeatureIterator it = json.streamFeatureCollection(file(data, item));

        return new FeatureReader() {

            @Override
            public FeatureType getFeatureType() {
                return featureType;
            }
View Full Code Here

        assertEquals("twenty", f.getAttribute("baz"));
        r.close();
    }
   
    public void testGetFeatureReader() throws Exception {
        FeatureReader r = dataStore.getFeatureReader(new Query("bar"), Transaction.AUTO_COMMIT);
        assertNotNull(r);
       
        assertTrue(r.hasNext());
    }
View Full Code Here

    void loadIntoDataStore(ImportTask task, DataStoreInfo store, VectorFormat format,
        VectorTransformChain tx) throws Exception {

        ImportData data = task.getData();
        FeatureReader reader = null;
        FeatureWriter writer = null;
        // using this exception to throw at the end
        Exception error = null;
        try {
            reader = format.read(data, task);

            SimpleFeatureType featureType = (SimpleFeatureType) reader.getFeatureType();
            final String featureTypeName = featureType.getName().getLocalPart();
   
            DataStore dataStore = (DataStore) store.getDataStore(null);
            FeatureDataConverter featureDataConverter = FeatureDataConverter.DEFAULT;
            if (isShapefileDataStore(dataStore)) {
                featureDataConverter = FeatureDataConverter.TO_SHAPEFILE;
            }
            else if (isOracleDataStore(dataStore)) {
                featureDataConverter = FeatureDataConverter.TO_ORACLE;
            }
            else if (isPostGISDataStore(dataStore)) {
                featureDataConverter = FeatureDataConverter.TO_POSTGIS;
            }
           
            featureType = featureDataConverter.convertType(featureType, format, data, task);
            UpdateMode updateMode = task.getUpdateMode();
            final String uniquifiedFeatureTypeName;
            if (updateMode == UpdateMode.CREATE) {
                //find a unique type name in the target store
                uniquifiedFeatureTypeName = findUniqueNativeFeatureTypeName(featureType, store);
                task.setOriginalLayerName(featureTypeName);
   
                if (!uniquifiedFeatureTypeName.equals(featureTypeName)) {
                    //update the metadata
                    task.getLayer().getResource().setName(uniquifiedFeatureTypeName);
                    task.getLayer().getResource().setNativeName(uniquifiedFeatureTypeName);
                   
                    //retype
                    SimpleFeatureTypeBuilder typeBuilder = new SimpleFeatureTypeBuilder();
                    typeBuilder.setName(uniquifiedFeatureTypeName);
                    typeBuilder.addAll(featureType.getAttributeDescriptors());
                    featureType = typeBuilder.buildFeatureType();
                }
   
                // @todo HACK remove this at some point when timezone issues are fixed
                // this will force postgis to create timezone w/ timestamp fields
                if (dataStore instanceof JDBCDataStore) {
                    JDBCDataStore ds = (JDBCDataStore) dataStore;
                    // sniff for postgis (h2 is used in tests and will cause failure if this occurs)
                    if (ds.getSqlTypeNameToClassMappings().containsKey("timestamptz")) {
                        ds.getSqlTypeToSqlTypeNameOverrides().put(java.sql.Types.TIMESTAMP, "timestamptz");
                    }
                }
   
                //apply the feature type transform
                featureType = tx.inline(task, dataStore, featureType);
   
                dataStore.createSchema(featureType);
            } else {
                // @todo what to do if featureType transform is present?
               
                // @todo implement me - need to specify attribute used for id
                if (updateMode == UpdateMode.UPDATE) {
                    throw new UnsupportedOperationException("updateMode UPDATE is not supported yet");
                }
                uniquifiedFeatureTypeName = featureTypeName;
            }
               
            Transaction transaction = new DefaultTransaction();
           
            if (updateMode == UpdateMode.REPLACE) {
               
                FeatureStore fs = (FeatureStore) dataStore.getFeatureSource(featureTypeName);
                fs.setTransaction(transaction);
                fs.removeFeatures(Filter.INCLUDE);
            }
           
            //start writing features
            // @todo ability to collect transformation errors for use in a dry-run (auto-rollback)
           
            ProgressMonitor monitor = task.progress();
           
            // @todo need better way to communicate to client
            int skipped = 0;
            int cnt = 0;
            // metrics
            long startTime = System.currentTimeMillis();
            task.clearMessages();
           
            task.setTotalToProcess(format.getFeatureCount(task.getData(), task));
           
            LOGGER.info("begining import");
            try {
                writer = dataStore.getFeatureWriterAppend(uniquifiedFeatureTypeName, transaction);
               
                while(reader.hasNext()) {
                    if (monitor.isCanceled()){
                        break;
                    }
                    SimpleFeature feature = (SimpleFeature) reader.next();
                    SimpleFeature next = (SimpleFeature) writer.next();
   
                    //(JD) TODO: some formats will rearrange the geometry type (like shapefile) which
                    // makes the goemetry the first attribute reagardless, so blindly copying over
                    // attributes won't work unless the source type also  has the geometry as the
View Full Code Here

TOP

Related Classes of org.geotools.data.FeatureReader

Copyright © 2018 www.massapicom. 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.