Package net.opengis.wfs

Examples of net.opengis.wfs.QueryType


    Operation request(QName... names) {
        Service service = getServiceDescriptor10();
        GetFeatureType type = WfsFactory.eINSTANCE.createGetFeatureType();
        type.setBaseUrl("http://localhost:8080/geoserver");
        for (QName name : names) {
            QueryType queryType = WfsFactory.eINSTANCE.createQueryType();
            queryType.setTypeName(Collections.singletonList(name));
            type.getQuery().add(queryType);
        }
        Operation request = new Operation("wfs", service, null, new Object[] { type });
        return request;
    }
View Full Code Here


    private GetFeatureType toGetFeatureType(FeatureCollectionType featureCollection,
            GetLogType request) {
        SimpleFeatureCollection features = (SimpleFeatureCollection) featureCollection.getFeature().get(0);
        SimpleFeatureType featureType = features.getSchema();
        GetFeatureType ftRequest = WfsFactory.eINSTANCE.createGetFeatureType();
        QueryType query = WfsFactory.eINSTANCE.createQueryType();
        query.setTypeName(Collections.singletonList(featureType.getTypeName()));
        ftRequest.getQuery().add(query);
        ftRequest.setBaseUrl(request.getBaseUrl());
        ftRequest.setHandle(request.getHandle());
        ftRequest.setMaxFeatures(request.getMaxFeatures());
        ftRequest.setOutputFormat(request.getOutputFormat());
View Full Code Here

        final Object parsed = parse(WFS.Query);
        assertTrue((parsed == null) ? "null" : parsed.getClass().toString(),
                parsed instanceof QueryType);

        QueryType query = (QueryType) parsed;
        List typeNames = query.getTypeName();
        assertEquals(1, typeNames.size());

        QName typeName = new QName("http://www.geotools.org/test", "testType1");
        Object parsedName = typeNames.get(0);
        assertEquals(typeName, parsedName);
        assertEquals("testHandle", query.getHandle());
        assertEquals("HEAD", query.getFeatureVersion());
        assertEquals("urn:x-ogc:def:crs:EPSG:6.11.2:4326", query.getSrsName().toString());

        assertEquals(2, query.getPropertyName().size());
        assertEquals(2, query.getXlinkPropertyName().size());
        assertEquals(2, query.getFunction().size());

        assertEquals("property1", query.getPropertyName().get(0));
        assertEquals("property2", query.getPropertyName().get(1));

        XlinkPropertyNameType xlink;
        xlink = (XlinkPropertyNameType) query.getXlinkPropertyName().get(0);
        assertEquals("gt:propertyA/gt:propertyB", xlink.getValue());
        assertEquals("*", xlink.getTraverseXlinkDepth());
        assertEquals(BigInteger.valueOf(10), xlink.getTraverseXlinkExpiry());

        xlink = (XlinkPropertyNameType) query.getXlinkPropertyName().get(1);
        assertEquals("gt:propertyC/gt:propertyD", xlink.getValue());
        assertEquals("1", xlink.getTraverseXlinkDepth());
        assertNull(xlink.getTraverseXlinkExpiry());

        Function function;
        function = (Function) query.getFunction().get(0);
        assertNotNull(function);
        assertEquals("max", function.getName());

        function = (Function) query.getFunction().get(1);
        assertNotNull(function);
        assertEquals("min", function.getName());

        assertTrue(query.getFilter() instanceof Id);
        assertEquals(1, query.getSortBy().size());
        assertTrue(query.getSortBy().get(0) instanceof SortBy);
    }
View Full Code Here

        assertTrue(query.getSortBy().get(0) instanceof SortBy);
    }

    @SuppressWarnings("unchecked")
    public void testEncode() throws Exception {
        final QueryType query = buildTestQuery();

        final Document dom = encode(query, WFS.Query);
        final Element root = dom.getDocumentElement();

        assertName(WFS.Query, root);
View Full Code Here

        xlinkPropertyName2.setTraverseXlinkDepth("1");
        xlinkPropertyName2.setValue("propertyC/propertyD");

        // The first property is a Choice[0..*] of PropertyName,
        // XLinkPropertyName and Function
        QueryType query = factory.createQueryType();
        query.setTypeName(Collections.singletonList("typeName1"));
        query.getPropertyName().add("property1");
        query.getXlinkPropertyName().add(xlinkPropertyName1);
        query.getFunction().add(function1);
        query.getPropertyName().add("property2");
        query.getXlinkPropertyName().add(xlinkPropertyName2);
        query.getFunction().add(function2);

        query.setFilter(ff.id(Collections.singleton(ff.featureId("fid"))));
        query.getSortBy().add(ff.sort("sortProperty", SortOrder.DESCENDING));

        return query;
    }
View Full Code Here

     * @return a {@link GetFeatureParser} to stream the contents of the GML 3.1 response
     */
    public Object parse(WFSResponse response, String axisOrder) throws IOException {

        final GetFeatureType request = (GetFeatureType) response.getOriginatingRequest();
        final QueryType queryType = (QueryType) request.getQuery().get(0);
        final QName remoteFeatureName = response.getRemoteTypeName();

        SimpleFeatureType schema = response.getQueryType();
        @SuppressWarnings("unchecked")
        List<String> propertyNames = queryType.getPropertyName();
        if (propertyNames.size() > 0) {
            // the expected schema may contain less properties than the full schema. Let's say it to
            // the parser so it does not parse unnecessary attributes in case the WFS returns more
            // than requested
            String[] properties = propertyNames.toArray(new String[propertyNames.size()]);
View Full Code Here

        ResultType resultType = query.getResultType();
        getFeature.setResultType(RESULTS == resultType ? ResultTypeType.RESULTS_LITERAL
                : ResultTypeType.HITS_LITERAL);

        QueryType wfsQuery = factory.createQueryType();
        wfsQuery.setTypeName(Collections.singletonList(typeName));

        final Filter supportedFilter;
        final Filter unsupportedFilter;
        {
            final Filter filter = query.getFilter();
            Filter[] splitFilters = splitFilters(typeName, filter);
            supportedFilter = splitFilters[0];
            unsupportedFilter = splitFilters[1];
        }

        query.setUnsupportedFilter(unsupportedFilter);

        if (!Filter.INCLUDE.equals(supportedFilter)) {
            wfsQuery.setFilter(supportedFilter);
        }

        String srsName = query.getSrsName();
        if (null == srsName) {
            srsName = featureTypeInfo.getDefaultSRS();
        }
        try {
            wfsQuery.setSrsName(new URI(srsName));
        } catch (URISyntaxException e) {
            throw new RuntimeException("Can't create a URI from the query CRS: " + srsName, e);
        }
        String[] propertyNames = query.getPropertyNames();
        boolean retrieveAllProperties = propertyNames == null;
        if (!retrieveAllProperties) {
            List<String> propertyName = wfsQuery.getPropertyName();
            for (String propName : propertyNames) {
                propertyName.add(propName);
            }
        }
        SortBy[] sortByList = query.getSortBy();
        if (sortByList != null) {
            for (SortBy sortBy : sortByList) {
                wfsQuery.getSortBy().add(sortBy);
            }
        }

        getFeature.getQuery().add(wfsQuery);
View Full Code Here

     * @return a {@link GetFeatureParser} to stream the contents of the GML 3.1 response
     */
    public Object parse(WFS_1_1_0_DataStore wfs, WFSResponse response) throws IOException {

        GetFeatureType request = (GetFeatureType) response.getOriginatingRequest();
        QueryType queryType = (QueryType) request.getQuery().get(0);
        String prefixedTypeName = (String) queryType.getTypeName().get(0);
        SimpleFeatureType schema = wfs.getSchema(prefixedTypeName);
        List<String> propertyNames = queryType.getPropertyName();
        if (propertyNames.size() > 0) {
            // the expected schema may contain less properties than the full schema. Let's say it to
            // the parser so it does not parse unnecessary attributes in case the WFS returns more
            // than requested
            String[] properties = propertyNames.toArray(new String[propertyNames.size()]);
View Full Code Here

    @Override
    public RequestComponents createGetFeatureRequest(WFSProtocol wfs, GetFeature query)
            throws IOException {
        RequestComponents req = super.createGetFeatureRequest(wfs, query);
        GetFeatureType getFeature = req.getServerRequest();
        QueryType queryType = (QueryType) getFeature.getQuery().get(0);
        URI srsNameUri = queryType.getSrsName();
        final String overrideSrs = "urn:opengis:def:crs:ogc::83";
        if (srsNameUri != null && srsNameUri.toString().equalsIgnoreCase(overrideSrs)) {
            try {
                queryType.setSrsName(new URI("EPSG:4269"));
            } catch (URISyntaxException e) {
                throw new RuntimeException("shouln't happen: " + e.getMessage());
            }
            Map<String, String> kvpParameters = req.getKvpParameters();
            kvpParameters.put("SRSNAME", "EPSG:4269");
View Full Code Here

        }

        ResultType resultType = query.getResultType();
        getFeature.setResultType(RESULTS == resultType ? RESULTS_LITERAL : HITS_LITERAL);

        QueryType wfsQuery = factory.createQueryType();
        wfsQuery.setTypeName(Collections.singletonList(query.getTypeName()));

        Filter serverFilter = query.getFilter();
        if (!Filter.INCLUDE.equals(serverFilter)) {
            wfsQuery.setFilter(serverFilter);
        }
        String srsName = query.getSrsName();
        try {
            wfsQuery.setSrsName(new URI(srsName));
        } catch (URISyntaxException e) {
            throw new RuntimeException("Can't create a URI from the query CRS: " + srsName, e);
        }
        String[] propertyNames = query.getPropertyNames();
        boolean retrieveAllProperties = propertyNames == null;
        if (!retrieveAllProperties) {
            List propertyName = wfsQuery.getPropertyName();
            for (String propName : propertyNames) {
                propertyName.add(propName);
            }
        }
        SortBy[] sortByList = query.getSortBy();
        if (sortByList != null) {
            for (SortBy sortBy : sortByList) {
                wfsQuery.getSortBy().add(sortBy);
            }
        }

        getFeature.getQuery().add(wfsQuery);
View Full Code Here

TOP

Related Classes of net.opengis.wfs.QueryType

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.