Examples of PostPreProcessFilterSplittingVisitor


Examples of org.geotools.filter.visitor.PostPreProcessFilterSplittingVisitor

            // first off, simplify the filter
            ArcSdeSimplifyingFilterVisitor visitor = new ArcSdeSimplifyingFilterVisitor(featureType);
            Filter simplified = (Filter) sourceFilter.accept(visitor, null);
           
            // then perform the splits
            PostPreProcessFilterSplittingVisitor unpacker = new PostPreProcessFilterSplittingVisitor(
                    sqlEncoder.getCapabilities(), featureType, null);
            simplified.accept(unpacker, null);

            SimplifyingFilterVisitor filterSimplifier = new SimplifyingFilterVisitor();
            final String typeName = this.featureType.getTypeName();
            FIDValidator validator = new SimplifyingFilterVisitor.TypeNameDotNumberFidValidator(
                    typeName);
            filterSimplifier.setFIDValidator(validator);

            this._sqlFilter = unpacker.getFilterPre();
            this._sqlFilter = (Filter) this._sqlFilter.accept(filterSimplifier, null);

            if (LOGGER.isLoggable(Level.FINE) && _sqlFilter != null)
                LOGGER.fine("SQL portion of SDE Query: '" + _sqlFilter + "'");

            Filter remainingFilter = unpacker.getFilterPost();

            unpacker = new PostPreProcessFilterSplittingVisitor(
                    GeometryEncoderSDE.getCapabilities(), featureType, null);
            remainingFilter.accept(unpacker, null);

            this.geometryFilter = unpacker.getFilterPre();
            this.geometryFilter = (Filter) this.geometryFilter.accept(filterSimplifier, null);
            if (LOGGER.isLoggable(Level.FINE) && geometryFilter != null)
                LOGGER.fine("Spatial-Filter portion of SDE Query: '" + geometryFilter + "'");

            this.unsupportedFilter = unpacker.getFilterPost();
            if (LOGGER.isLoggable(Level.FINE) && unsupportedFilter != null)
                LOGGER.fine("Unsupported (and therefore ignored) portion of SDE Query: '"
                        + unsupportedFilter + "'");
        }
View Full Code Here

Examples of org.geotools.filter.visitor.PostPreProcessFilterSplittingVisitor

   
    Filter[] splitFilter(Filter original) {
        Filter[] split = new Filter[2];
        if ( original != null ) {
            //create a filter splitter
            PostPreProcessFilterSplittingVisitor splitter = new PostPreProcessFilterSplittingVisitor(getDataStore()
                    .getFilterCapabilities(), null, null);
            original.accept(splitter, null);
       
            split[0] = splitter.getFilterPre();
            split[1] = splitter.getFilterPost();
        }
       
        SimplifyingFilterVisitor visitor = new SimplifyingFilterVisitor();
        visitor.setFIDValidator( new PrimaryKeyFIDValidator( this ) );
        split[0] = (Filter) split[0].accept(visitor, null);
View Full Code Here

Examples of org.geotools.filter.visitor.PostPreProcessFilterSplittingVisitor

    private Filter[] splitFilter(Filter original, FeatureSource source) {
        Filter[] split = new Filter[2];
        if (original != null) {
            SolrFeatureSource featureSource = (SolrFeatureSource) source;
            ;
            PostPreProcessFilterSplittingVisitor splitter = new PostPreProcessFilterSplittingVisitor(
                    getDataStore().getFilterCapabilities(), featureSource.getSchema(), null);
            original.accept(splitter, null);
            split[0] = splitter.getFilterPre();
            split[1] = splitter.getFilterPost();
        }
        return split;
    }
View Full Code Here

Examples of org.geotools.filter.visitor.PostPreProcessFilterSplittingVisitor

        WFSTransactionState state = (t == Transaction.AUTO_COMMIT) ? null : (WFSTransactionState) t
                .getState(this);
        WFSTransactionAccessor transactionAccessor = null;
        if (state != null)
            transactionAccessor = new WFSTransactionAccessor(state.getActions(ft.getTypeName()));
        PostPreProcessFilterSplittingVisitor wfsfv = new PostPreProcessFilterSplittingVisitor(
                capabilities.getFilterCapabilities(), ft, transactionAccessor);

        q.getFilter().accept(wfsfv, null);

        Filter[] f = new Filter[2];
        f[0] = wfsfv.getFilterPre(); // server
        f[1] = wfsfv.getFilterPost();

        return f;
    }
View Full Code Here

Examples of org.geotools.filter.visitor.PostPreProcessFilterSplittingVisitor

        if (filter == Filter.INCLUDE || filter == Filter.EXCLUDE) {
            return true;
        }

        // we can encode fully an attribute filter plus a bbox spatial filter
        PostPreProcessFilterSplittingVisitor visitor = new PostPreProcessFilterSplittingVisitor(
                ATTRIBUTE_FILTER_CAPABILITIES, schema, null);
        filter.accept(visitor, null);
        Filter postFilter = visitor.getFilterPost();
        return postFilter == Filter.INCLUDE || postFilter instanceof BBOX;
    }
View Full Code Here

Examples of org.geotools.filter.visitor.PostPreProcessFilterSplittingVisitor

     * @return
     */
    public Filter getPostFilter() {
        // see if the query has a single bbox filter (that's how much we're sure to be able to
        // encode)
        PostPreProcessFilterSplittingVisitor visitor = new PostPreProcessFilterSplittingVisitor(
                STRICT_GEOMETRY_FILTER_CAPABILITIES, schema, null);
        filter.accept(visitor, null);
        Filter preFilter = visitor.getFilterPre();

        if (preFilter == null || preFilter instanceof BBOX) {
            // ok, then we can extract using the extended caps
            visitor = new PostPreProcessFilterSplittingVisitor(EXTENDED_FILTER_CAPABILITIES,
                    schema, null);
            filter.accept(visitor, null);
            return visitor.getFilterPost();
        } else {
            // though luck, there is more than a single bbox filter
            visitor = new PostPreProcessFilterSplittingVisitor(ATTRIBUTE_FILTER_CAPABILITIES,
                    schema, null);
            filter.accept(visitor, null);
            return visitor.getFilterPost();
        }
    }
View Full Code Here

Examples of org.geotools.filter.visitor.PostPreProcessFilterSplittingVisitor

     * @param filter
     * @return
     */
    public Geometry getSpatialFilter() {
        // TODO: switch to the non deprecated splitter (that no one seems to be using)
        PostPreProcessFilterSplittingVisitor visitor = new PostPreProcessFilterSplittingVisitor(
                GEOMETRY_FILTER_CAPABILITIES, schema, null);
        filter.accept(visitor, null);
        Filter preFilter = visitor.getFilterPre();
        if (preFilter instanceof BinarySpatialOperator) {
            BinarySpatialOperator bso = ((BinarySpatialOperator) preFilter);
            Expression geomExpression = null;
            if (bso.getExpression1() instanceof PropertyName
                    && bso.getExpression2() instanceof Literal) {
View Full Code Here

Examples of org.geotools.filter.visitor.PostPreProcessFilterSplittingVisitor

     * @param filter
     * @return
     */
    public String getAttributeFilter() {
        // TODO: switch to the non deprecated splitter (that no one seems to be using)
        PostPreProcessFilterSplittingVisitor visitor = new PostPreProcessFilterSplittingVisitor(
                ATTRIBUTE_FILTER_CAPABILITIES, schema, null);
        filter.accept(visitor, null);
        Filter preFilter = visitor.getFilterPre();
        if (preFilter != Filter.EXCLUDE && preFilter != Filter.INCLUDE) {
            FilterToRestrictedWhere sqlConverter = new FilterToRestrictedWhere(schema);
            preFilter.accept(sqlConverter, null);
            return sqlConverter.getRestrictedWhere();
        }
View Full Code Here

Examples of org.geotools.filter.visitor.PostPreProcessFilterSplittingVisitor

        }

        Filter[] split = new Filter[2];
        if ( original != null ) {
            //create a filter splitter
            PostPreProcessFilterSplittingVisitor splitter = new PostPreProcessFilterSplittingVisitor(getDataStore()
                    .getFilterCapabilities(), featureSource.getSchema(), null);
            original.accept(splitter, null);
       
            split[0] = splitter.getFilterPre();
            split[1] = splitter.getFilterPost();
        }
       
        // handle three-valued logic differences by adding "is not null" checks in the filter,
        // the simplifying filter visitor will take care of them if they are redundant
        NullHandlingVisitor nhv = new NullHandlingVisitor(source.getSchema());
View Full Code Here

Examples of org.geotools.filter.visitor.PostPreProcessFilterSplittingVisitor

    Filter[] splitFilter(Filter fnOriginalFilter) {
        /* Split filter into 2 parts */
        Filter[] split = new Filter[2];
        if (fnOriginalFilter != null) {
            //create a filter splitter
            PostPreProcessFilterSplittingVisitor splitter = new PostPreProcessFilterSplittingVisitor(ods.ODS_FILTER_CAPABILITIES, getSchema(), null);

            fnOriginalFilter.accept(splitter, null);
            /* Natively supported*/
            split[0] = splitter.getFilterPre();
            /* Not natively supported*/
            split[1] = splitter.getFilterPost();
        }
        /* Getting simplest possible filter*/
        SimplifyingFilterVisitor visitor = new SimplifyingFilterVisitor();

        split[0] = (Filter) split[0].accept(visitor, null);
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.