Package org.geotools.feature.visitor

Examples of org.geotools.feature.visitor.UniqueVisitor


                    }
                    //count the number of unique attributes
                    int uniqueCount = -1;
                    try {
                        Expression attr = ff.property(attribute);
                        UniqueVisitor uniques = new UniqueVisitor(attr);
                        ProgressListener progress = new NullProgressListener();
                        collection.accepts(uniques, progress);
                        uniqueCount = uniques.getUnique().size();
                    } catch (IOException e1) {
                        SLDPlugin.log("unique values calculation failed", e1); //$NON-NLS-1$
                    }
                    if (uniqueCount > -1) {
                        updateUnique(attribute, uniqueCount);                   
View Full Code Here


     * @throws IOException
     */
    private Set extractDomain(final String attribute) throws IOException {
        Query query = new Query(typeName);
        query.setPropertyNames(Arrays.asList(attribute));
        final UniqueVisitor visitor = new UniqueVisitor(attribute);
        granuleCatalog.computeAggregateFunction(query, visitor);
        return visitor.getUnique();
    }
View Full Code Here

     * @param checkForReferences
     * @throws IOException
     */
    private void cleanupGranules(Query query, boolean checkForReferences, boolean deleteData) throws IOException {
        final SimpleFeatureCollection collection = granuleCatalog.getGranules(query);
        UniqueVisitor visitor = new UniqueVisitor(parentReader.locationAttributeName);
        collection.accepts(visitor, null);
        Set<String> features = visitor.getUnique();
        final String coverageName = query.getTypeName();

        for (String feature: features) {
            final URL rasterPath = pathType.resolvePath(DataUtilities.fileToURL(parentReader.parentDirectory).toString(), feature);
            boolean delete = true;
View Full Code Here

        final String[] coverageNames = parentReader.getGridCoverageNames();
        for (String typeName : coverageNames) {
            if (!coverageName.equalsIgnoreCase(typeName)) {
                Query query = new Query(typeName);
                final SimpleFeatureCollection collection = granuleCatalog.getGranules(query);
                UniqueVisitor visitor = new UniqueVisitor(parentReader.locationAttributeName);
                collection.accepts(visitor, null);
                Set<String> features = visitor.getUnique();
                if (features.size() > 0) {
                    return true;
                }
            }
        }
View Full Code Here

                attIndex = i;
                break;
            }
        }

        UniqueVisitor visitor = new UniqueVisitor(attIndex, features.getSchema());
        features.accepts(visitor, progressListener);
        List uniqueValues = visitor.getResult().toList();

        SimpleFeatureTypeBuilder tb = new SimpleFeatureTypeBuilder();
        tb.add("value", features.getSchema().getDescriptor(attIndex).getType().getBinding());
        tb.setName("UniqueValue");
        SimpleFeatureType ft = tb.buildFeatureType();
View Full Code Here

        stb.setCRS(DefaultGeographicCRS.WGS84);
        stb.add("geo", Geometry.class);
        stb.add("bar", Integer.class);
        SimpleFeatureType ft = stb.buildFeatureType();

        UniqueVisitor vis = new UniqueVisitor("bar");

        SimpleFeatureCollection delegate = createMock(SimpleFeatureCollection.class);
        expect(delegate.getSchema()).andReturn(ft).anyTimes();
        delegate.accepts(vis, null);
        expectLastCall().once();
        replay(delegate);

        ReprojectingFeatureCollection rfc = new ReprojectingFeatureCollection(delegate, target);
        rfc.accepts(vis, null);
        verify(delegate);

        vis = new UniqueVisitor("geo");
        SimpleFeatureIterator it = createNiceMock(SimpleFeatureIterator.class);
        replay(it);

        delegate = createMock(SimpleFeatureCollection.class);
        expect(delegate.features()).andReturn(it).once();
View Full Code Here

        SimpleFeatureTypeBuilder stb = new SimpleFeatureTypeBuilder();
        stb.setName("test");
        stb.add("foo", String.class);
        stb.add("bar", Integer.class);

        UniqueVisitor vis = new UniqueVisitor("bar");

        SimpleFeatureCollection delegate = createMock(SimpleFeatureCollection.class);
        delegate.accepts(vis, null);
        expectLastCall().once();
        replay(delegate);

        ReTypingFeatureCollection rtc =
            new ReTypingFeatureCollection(delegate, stb.buildFeatureType());
        rtc.accepts(vis, null);
        verify(delegate);

        vis = new UniqueVisitor("baz");

        SimpleFeatureIterator it = createNiceMock(SimpleFeatureIterator.class);
        replay(it);

        SimpleFeatureType ft = createNiceMock(SimpleFeatureType.class);
View Full Code Here

     * @throws IllegalFilterException
     * @throws IOException
     */
    static CalcResult calculateUnique(SimpleFeatureCollection collection,
        Expression expression) throws IllegalFilterException, IOException {
        UniqueVisitor uniqueVisitor = new UniqueVisitor(expression);
        collection.accepts(uniqueVisitor, null);

        return uniqueVisitor.getResult();
    }
View Full Code Here

    @SuppressWarnings("unchecked")
    private Object calculate(SimpleFeatureCollection featureCollection) {
        try {
            int classNum = getClasses();
          //use a visitor to grab the unique values
            UniqueVisitor uniqueVisit = new UniqueVisitor(getParameters().get(0));
          if (progress == null) progress = new NullProgressListener();
                featureCollection.accepts(uniqueVisit, progress);
          if (progress.isCanceled()) return null;
       
            CalcResult calcResult = uniqueVisit.getResult();
            if (calcResult == null) return null;
            List result = calcResult.toList();
            //sort the results and put them in an array
            Collections.sort(result, new Comparator() {
                public int compare(Object o1, Object o2) {
View Full Code Here

   
    public void testUnique() throws Exception {
        FilterFactory ff = dataStore.getFilterFactory();
        PropertyName p = ff.property( aname("stringProperty") );
       
        UniqueVisitor v = new MyUniqueVisitor(p);
        dataStore.getFeatureSource(tname("ft1")).accepts(Query.ALL, v, null);
        assertFalse(visited);
        Set result = v.getResult().toSet();
        assertEquals(3, result.size());
        assertTrue(result.contains("zero"));
        assertTrue(result.contains("one"));
        assertTrue(result.contains("two"));
    }
View Full Code Here

TOP

Related Classes of org.geotools.feature.visitor.UniqueVisitor

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.