Package org.geotools.data

Examples of org.geotools.data.Query


    private void testFidFilters(final int numFids) throws Exception {
        final DataStore ds = testData.getDataStore();
        final String typeName = testData.getTempTableName();

        // grab some fids
        FeatureReader<SimpleFeatureType, SimpleFeature> reader = ds.getFeatureReader(new Query(
                typeName), Transaction.AUTO_COMMIT);

        final String idTemplate;
        Set<FeatureId> fids = new TreeSet<FeatureId>(new Comparator<FeatureId>() {
            public int compare(FeatureId o1, FeatureId o2) {
                return o1.getID().compareTo(o2.getID());
            }
        });

        try {
            String id = reader.next().getID();
            fids.add(ff.featureId(id));
            idTemplate = id.substring(0, id.length() - 1);
        } finally {
            reader.close();
        }

        int x = 1000;
        while (fids.size() < numFids) {
            fids.add(ff.featureId(idTemplate + x++));
        }

        Id filter = ff.id(fids);

        SimpleFeatureSource source = ds.getFeatureSource(typeName);
        Query query = new Query(typeName, filter);
        SimpleFeatureCollection results = source.getFeatures(query);

        assertEquals(1, results.size());
        SimpleFeatureIterator iterator = results.features();
        try {
View Full Code Here


    @Test
    public void testSorting() throws Exception {
        final String typeName = testData.getTempTableName();
        SimpleFeatureSource fs = store.getFeatureSource(typeName);

        Query query = new Query(typeName);

        final String sortAtt = "INT32_COL";
        SortBy[] sortBy;
        SimpleFeatureIterator features;

        sortBy = new SortBy[] { ff.sort(sortAtt, ASCENDING) };
        query.setSortBy(sortBy);
        features = fs.getFeatures(query).features();
        try {
            Integer previous = Integer.valueOf(Integer.MIN_VALUE);
            while (features.hasNext()) {
                Integer intVal = (Integer) features.next().getAttribute(sortAtt);
                assertTrue(previous + " < " + intVal + "?", previous.intValue() < intVal.intValue());
                previous = intVal;
            }
        } finally {
            features.close();
        }

        sortBy = new SortBy[] { ff.sort(sortAtt, DESCENDING) };
        query.setSortBy(sortBy);
        features = fs.getFeatures(query).features();
        try {
            Integer previous = Integer.valueOf(Integer.MAX_VALUE);
            while (features.hasNext()) {
                Integer intVal = (Integer) features.next().getAttribute(sortAtt);
                assertTrue(previous + " > " + intVal + "?", previous.intValue() > intVal.intValue());
                previous = intVal;
            }
        } finally {
            features.close();
        }

        sortBy = new SortBy[] { ff.sort(sortAtt, DESCENDING), ff.sort("FLOAT32_COL", ASCENDING) };
        query.setSortBy(sortBy);
        features = fs.getFeatures(query).features();
        try {
            Integer previous = Integer.valueOf(Integer.MAX_VALUE);
            while (features.hasNext()) {
                Integer intVal = (Integer) features.next().getAttribute(sortAtt);
View Full Code Here

     * @return The bounding box of the query or null if unknown and too expensive for the method to
     *         calculate or any errors occur.
     * @see FeatureSource#getBounds(Query)
     */
    public final ReferencedEnvelope getBounds(final Query query) throws IOException {
        final Query namedQuery = namedQuery(query);
        final ISession session = getSession();
        ReferencedEnvelope ev;
        try {
            ev = getBounds(namedQuery, session);
        } finally {
View Full Code Here

    /**
     * @see FeatureSource#getCount(Query)
     */
    public final int getCount(final Query query) throws IOException {
        final Query namedQuery = namedQuery(query);
        final ISession session = getSession();
        final int count;
        try {
            count = getCount(namedQuery, session);
        } finally {
View Full Code Here

        final String typeName = query.getTypeName();
        if (typeName != null && !localName.equals(typeName)) {
            throw new IllegalArgumentException("Wrong type name: " + typeName + " (this is "
                    + localName + ")");
        }
        Query namedQuery = new Query(query);
        namedQuery.setTypeName(localName);
        return namedQuery;
    }
View Full Code Here

    /**
     * @see FeatureSource#getFeatures(Query)
     */
    public final SimpleFeatureCollection getFeatures(final Query query) throws IOException {
        final Query namedQuery = namedQuery(query);
        SimpleFeatureCollection collection;
        SimpleFeatureType queryType = dataStore.getQueryType(namedQuery);
        collection = new ArcSdeFeatureCollection(this, queryType, namedQuery);
        return collection;
    }
View Full Code Here

    /**
     * @see FeatureSource#getFeatures(Filter)
     */
    public final SimpleFeatureCollection getFeatures(final Filter filter) throws IOException {
        Query query = new Query(typeInfo.getFeatureTypeName(), filter);
        return getFeatures(query);
    }
View Full Code Here

    @Test
    public void testEqualFilter() throws Exception {
        FeatureType ft = this.dataStore.getSchema(testData.getTempTableName());

        // Get a geometry for equality comparison
        Query Query = new Query(testData.getTempTableName());
        Query.setPropertyNames(safePropertyNames(ft));
        Query.setMaxFeatures(1);
        FeatureReader<SimpleFeatureType, SimpleFeature> fr = this.dataStore.getFeatureReader(Query,
                Transaction.AUTO_COMMIT);
        SimpleFeature feature = fr.next();
        fr.close();
View Full Code Here

     * @param string
     * @return
     */
    private Geometry findGeom(String cql) throws Exception {

        Query query = new Query(testData.getTempTableName());
        query.setFilter(ECQL.toFilter(cql));
        FeatureReader<SimpleFeatureType, SimpleFeature> fr = this.dataStore.getFeatureReader(query,
                Transaction.AUTO_COMMIT);
        SimpleFeature feature = fr.next();
        fr.close();
        return (Geometry) feature.getDefaultGeometry();
View Full Code Here

        System.err.println("****************");

        // First, read using the slow, built-in mechanisms
        String[] propertyNames = safePropertyNames(ft);
        final String typeName = testData.getTempTableName();
        Query allQuery = new Query(typeName, Filter.INCLUDE, propertyNames);
        System.err.println("Performing slow read...");

        long startTime = System.currentTimeMillis();
        FeatureReader<SimpleFeatureType, SimpleFeature> fr = this.dataStore.getFeatureReader(
                allQuery, Transaction.AUTO_COMMIT);
        FilteringFeatureReader<SimpleFeatureType, SimpleFeature> ffr = new FilteringFeatureReader<SimpleFeatureType, SimpleFeature>(
                fr, filter);
        ArrayList<SimpleFeature> slowResults = new ArrayList<SimpleFeature>();
        collectResults(ffr, slowResults);
        ffr.close();

        long endTime = System.currentTimeMillis();
        System.err.println("Slow read took " + (endTime - startTime) + " milliseconds.");

        // Now read using DataStore's mechanisms.
        System.err.println("Performing fast read...");
        startTime = System.currentTimeMillis();

        Query filteringQuery = new Query(testData.getTempTableName(), filter, safePropertyNames(ft));
        fr = this.dataStore.getFeatureReader(filteringQuery, Transaction.AUTO_COMMIT);

        ArrayList<SimpleFeature> fastResults = new ArrayList<SimpleFeature>();
        collectResults(fr, fastResults);
        fr.close();
View Full Code Here

TOP

Related Classes of org.geotools.data.Query

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.