Package org.opengis.filter.capability

Examples of org.opengis.filter.capability.FilterCapabilities


    }

    public void testParse() throws Exception {
        FilterMockData.capabilities(document, document);

        FilterCapabilities caps = (FilterCapabilities) parse();

        assertEquals(FilterCapabilities.VERSION_110, caps.getVersion());
        assertNotNull(caps.getScalarCapabilities());
        assertNotNull(caps.getSpatialCapabilities());
        assertNotNull(caps.getIdCapabilities());
    }


     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public NotificationChain basicSetFilterCapabilities(FilterCapabilities newFilterCapabilities, NotificationChain msgs) {
        FilterCapabilities oldFilterCapabilities = filterCapabilities;
        filterCapabilities = newFilterCapabilities;
        if (eNotificationRequired()) {
            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, Csw20Package.CAPABILITIES_TYPE__FILTER_CAPABILITIES, oldFilterCapabilities, newFilterCapabilities);
            if (msgs == null) msgs = notification; else msgs.add(notification);
        }

    /**
     * @see WFSStrategy#getFilterCapabilities()
     */
    @Override
    public FilterCapabilities getFilterCapabilities() {
        FilterCapabilities wfsFilterCapabilities;
        wfsFilterCapabilities = capabilities.getFilterCapabilities();
        return wfsFilterCapabilities;
    }

     * @see org.geotools.data.wfs.internal.WFSStrategy#splitFilters(org.opengis.filter.Filter)
     */
    @Override
    public Filter[] splitFilters(QName typeName, Filter filter) {

        FilterCapabilities filterCapabilities = getFilterCapabilities();
        Capabilities filterCaps = new Capabilities();
        if (filterCapabilities != null) {
            filterCaps.addAll(filterCapabilities);
            /*
             * General Fix for WFS 1.0 naming the "Intersects" spatial operation "Intersect", which
             * will make the CapabilitiesFilterSplitter think Intersects is not supported at
             * splitFilters
             */
            if (Versions.v1_0_0.equals(getServiceVersion())) {
                SpatialCapabilities spatialCaps = filterCapabilities.getSpatialCapabilities();
                if (spatialCaps != null) {
                    SpatialOperators spatialOps = spatialCaps.getSpatialOperators();
                    if (spatialOps != null) {
                        if (null != spatialOps.getOperator("Intersect")) {
                            trace("WFS 1.0 capabilities states the spatial operator Intersect. ",

     * Intersects}. If so, we fix that here so intersects is actually recognized as a supported
     * filter.
     */
    @Override
    public Filter[] splitFilters(Capabilities caps, Filter queryFilter) {
        FilterCapabilities filterCapabilities = caps.getContents();
        SpatialCapabilities spatialCapabilities = filterCapabilities.getSpatialCapabilities();
        if (spatialCapabilities != null) {
            SpatialOperators spatialOperators = spatialCapabilities.getSpatialOperators();
            if (spatialOperators != null) {
                SpatialOperator missnamedIntersects = spatialOperators.getOperator("Intersect");
                if (missnamedIntersects != null) {

    /**
     * @see WFSProtocol#getFilterCapabilities()
     */
    public FilterCapabilities getFilterCapabilities() {
        FilterCapabilities wfsFilterCapabilities;
        wfsFilterCapabilities = capabilities.getFilterCapabilities();
        return wfsFilterCapabilities;
    }

    public String getDefaultOutputFormat(WFSOperationType operation) {
        return strategy.getDefaultOutputFormat(this, operation);
    }
   
    public Filter[] splitFilters(Filter filter) {
        FilterCapabilities filterCapabilities = getFilterCapabilities();
        Capabilities filterCaps = new Capabilities();
        if (filterCapabilities != null) {
            filterCaps.addAll(filterCapabilities);
        }
        return strategy.splitFilters(filterCaps, filter);

     * @throws IOException
     */
    @Test
    public void testGetFilterCapabilities() throws IOException {
        createTestProtocol(GEOS_ARCHSITES.CAPABILITIES);
        FilterCapabilities filterCapabilities = wfs.getFilterCapabilities();
        assertNotNull(filterCapabilities);

        SpatialCapabilities spatialCapabilities = filterCapabilities.getSpatialCapabilities();
        Collection<GeometryOperand> geometryOperands = spatialCapabilities.getGeometryOperands();
        assertEquals(4, geometryOperands.size());
        assertTrue(geometryOperands.contains(GeometryOperand.Envelope));
        assertTrue(geometryOperands.contains(GeometryOperand.Point));
        assertTrue(geometryOperands.contains(GeometryOperand.LineString));

        SimplifyingFilterVisitor simplifier = new SimplifyingFilterVisitor();
        queryFilter = (Filter) queryFilter.accept(simplifier, null);
       
        // ID Filters aren't allowed to be parameters in Logical or Comparison Operators
       
        FilterCapabilities filterCapabilities = caps.getContents();
        IdCapabilities idCapabilities = filterCapabilities.getIdCapabilities();
        if (idCapabilities != null && (idCapabilities.hasEID() || idCapabilities.hasFID())) {
            // server supports ID Filters so we need to check our queryFilter is valid           
           
            Capabilities idFilterCaps = new Capabilities();
            idFilterCaps.addName("Id");
           
            CapabilitiesFilterSplitter splitter = new CapabilitiesFilterSplitter(idFilterCaps, null, null);
            queryFilter.accept(splitter, null);
       
            Filter server = splitter.getFilterPre();
            if (server.equals(Filter.INCLUDE)) {
                // ID Filters not found in the root Filter
                // remove ID Filter from Capabilities
                FilterCapabilities filterCapabilitiesWithoutId = new FilterCapabilitiesImpl(
                        filterCapabilities.getVersion(),
                        filterCapabilities.getScalarCapabilities(),
                        filterCapabilities.getSpatialCapabilities(),
                        null,
                        filterCapabilities.getTemporalCapabilities());

        assertEquals(25, ct.getValue().size());
        assertEquals("RevisionDate", ct.getValue().get(0));
        assertEquals("OperatesOnWithOpName", ct.getValue().get(24));
       
        /** This fails, caps are not getting parsed **/
        FilterCapabilities filterCapabilities = caps.getFilterCapabilities();
        assertNotNull(filterCapabilities);
        SpatialCapabilities spatial = filterCapabilities.getSpatialCapabilities();
        Collection<GeometryOperand> geoms = spatial.getGeometryOperands();
        assertEquals(4, geoms.size());
        assertTrue(geoms.contains(GeometryOperand.Envelope));
        assertTrue(geoms.contains(GeometryOperand.Polygon));
        assertTrue(geoms.contains(GeometryOperand.LineString));
        assertTrue(geoms.contains(GeometryOperand.Point));
        SpatialOperators sop = spatial.getSpatialOperators();
        assertEquals(11, sop.getOperators().size());
        assertNotNull(sop.getOperator("Crosses"));
        assertNotNull(sop.getOperator("Overlaps"));
        assertNotNull(sop.getOperator("BBOX"));
        assertNotNull(sop.getOperator("Touches"));
        assertNotNull(sop.getOperator("Intersects"));
        assertNotNull(sop.getOperator("Equals"));
        assertNotNull(sop.getOperator("Within"));
        assertNotNull(sop.getOperator("Contains"));
        assertNotNull(sop.getOperator("DWithin"));
        assertNotNull(sop.getOperator("Beyond"));
        ScalarCapabilities scalar = filterCapabilities.getScalarCapabilities();
        assertTrue(scalar.hasLogicalOperators());
        ComparisonOperators comparison = scalar.getComparisonOperators();
        assertEquals(9, comparison.getOperators().size());
        assertNotNull(comparison.getOperator("NullCheck"));
        assertNotNull(comparison.getOperator("Between"));
        assertNotNull(comparison.getOperator("LessThan"));
        assertNotNull(comparison.getOperator("GreaterThan"));
        assertNotNull(comparison.getOperator("GreaterThanEqualTo"));
        assertNotNull(comparison.getOperator("EqualTo"));
        assertNotNull(comparison.getOperator("NotEqualTo"));
        assertNotNull(comparison.getOperator("Like"));
        assertNotNull(comparison.getOperator("LessThanEqualTo"));
        ArithmeticOperators arithmetic = scalar.getArithmeticOperators();
        assertEquals(0, arithmetic.getFunctions().getFunctionNames().size());
        IdCapabilities id = filterCapabilities.getIdCapabilities();
        assertTrue(id.hasFID());
        assertFalse(id.hasEID());
    }

TOP

Related Classes of org.opengis.filter.capability.FilterCapabilities

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.