Search in sources :

Example 1 with FilterFactoryImpl

use of org.geotools.filter.FilterFactoryImpl in project ddf by codice.

the class OpenSearchQueryTest method testOgcFilterEvaluateContextualLike.

@Test
@Ignore
public void testOgcFilterEvaluateContextualLike() throws Exception {
    // String input = "abc_cat_dog_xyz";
    String input = "<ns1:thing xmlns:ns1=\"http://ddf.codice.org/mynamespace\">cat</ns1:thing>";
    // String searchTerm = "cat";
    // List<Filter> filters = new ArrayList<Filter>();
    FilterFactory filterFactory = new FilterFactoryImpl();
    // Filter filter = filterFactory.like( filterFactory.property( "AnyText" ), searchTerm );
    // Filter filter = filterFactory.equal( filterFactory.property( "thing" ),
    // filterFactory.literal( searchTerm ), false );
    // Filter filter = filterFactory.like( filterFactory.property( Query.ANY_TEXT ), searchTerm,
    // "*", "?", "\\" );
    // Filter filter = filterFactory.equal( filterFactory.property( Query.ANY_TEXT ),
    // searchTerm, false );
    // Filter filter = filterFactory.like( filterFactory.property( Query.ANY_TEXT ), searchTerm,
    // "*", "?", "\\" );
    Calendar.getInstance().getTime();
    String startDate = "2011-10-8T05:48:27.891-07:00";
    String endDate = "2011-10-10T06:18:27.581-07:00";
    TemporalFilter temporalFilter = new TemporalFilter(startDate, endDate);
    // WORKS Filter filter = filterFactory.between( filterFactory.literal( new Date() ),
    // filterFactory.literal( temporalFilter.getStartDate() ), filterFactory.literal(
    // temporalFilter.getEndDate() ) );
    Filter filter = filterFactory.between(filterFactory.literal(new Date()), filterFactory.literal(temporalFilter.getStartDate()), filterFactory.literal(temporalFilter.getEndDate()));
    FilterTransformer transform = new FilterTransformer();
    transform.setIndentation(2);
    LOGGER.debug(transform.transform(filter));
    // VisualizingVisitor vv = new VisualizingVisitor() ;
    // filter.accept(vv, null) ;
    // vv.getMap();
    boolean result = filter.evaluate(input);
    LOGGER.debug("result = {}", result);
// filters.add( filter );
}
Also used : TemporalFilter(ddf.catalog.impl.filter.TemporalFilter) TemporalFilter(ddf.catalog.impl.filter.TemporalFilter) BBoxSpatialFilter(org.codice.ddf.opensearch.query.filter.BBoxSpatialFilter) PolygonSpatialFilter(org.codice.ddf.opensearch.query.filter.PolygonSpatialFilter) Filter(org.opengis.filter.Filter) FilterFactoryImpl(org.geotools.filter.FilterFactoryImpl) FilterFactory(org.opengis.filter.FilterFactory) Date(java.util.Date) FilterTransformer(org.geotools.filter.FilterTransformer) Ignore(org.junit.Ignore) Test(org.junit.Test)

Example 2 with FilterFactoryImpl

use of org.geotools.filter.FilterFactoryImpl in project ddf by codice.

the class TestCswRecordMapperFilterVisitor method setUpBeforeClass.

@BeforeClass
public static void setUpBeforeClass() throws Exception {
    factory = new FilterFactoryImpl();
    attrExpr = factory.property(new NameImpl(new QName(CswConstants.DUBLIN_CORE_SCHEMA, UNMAPPED_PROPERTY, CswConstants.DUBLIN_CORE_NAMESPACE_PREFIX)));
    created = new AttributeExpressionImpl(new NameImpl(new QName(CswConstants.DUBLIN_CORE_SCHEMA, Core.CREATED, CswConstants.DUBLIN_CORE_NAMESPACE_PREFIX)));
    metacardType = CswQueryFactoryTest.getCswMetacardType();
    mockMetacardTypeList = new ArrayList<>();
    mockMetacardTypeList.add(metacardType);
    visitor = new CswRecordMapperFilterVisitor(metacardType, mockMetacardTypeList);
}
Also used : NameImpl(org.geotools.feature.NameImpl) AttributeExpressionImpl(org.geotools.filter.AttributeExpressionImpl) QName(javax.xml.namespace.QName) FilterFactoryImpl(org.geotools.filter.FilterFactoryImpl) BeforeClass(org.junit.BeforeClass)

Example 3 with FilterFactoryImpl

use of org.geotools.filter.FilterFactoryImpl in project ddf by codice.

the class TestPubSubOgcFilter method testContextualFeatureEvaluate.

@Test
@Ignore
public void testContextualFeatureEvaluate() throws TransformerException {
    SimpleFeature feature = generateSampleFeature();
    FilterFactory filterFactory = new FilterFactoryImpl();
    PropertyIsEqualTo filter = filterFactory.equal(filterFactory.property("name"), filterFactory.literal("FirstFeature"), true);
    printFilter(filter);
    assertTrue(filter.evaluate(feature));
}
Also used : PropertyIsEqualTo(org.opengis.filter.PropertyIsEqualTo) FilterFactoryImpl(org.geotools.filter.FilterFactoryImpl) SimpleFeature(org.opengis.feature.simple.SimpleFeature) FilterFactory(org.opengis.filter.FilterFactory) Ignore(org.junit.Ignore) Test(org.junit.Test)

Example 4 with FilterFactoryImpl

use of org.geotools.filter.FilterFactoryImpl in project ddf by codice.

the class TestPubSubOgcFilter method testGeospatialFeatureEvaluate.

@Test
@Ignore
public void testGeospatialFeatureEvaluate() throws TransformerException {
    SimpleFeature feature = generateSampleFeature();
    FilterFactoryImpl filterFactory = new FilterFactoryImpl();
    BBOX bboxFilter = filterFactory.bbox("geo", -114, 10, -110, 30, DefaultGeographicCRS.WGS84.toString());
    assertTrue(bboxFilter.evaluate(feature));
    BBOX bboxFilter1 = filterFactory.bbox("geo", -110, 10, 0, 30, DefaultGeographicCRS.WGS84.toString());
    assertFalse(bboxFilter1.evaluate(feature));
}
Also used : BBOX(org.opengis.filter.spatial.BBOX) FilterFactoryImpl(org.geotools.filter.FilterFactoryImpl) SimpleFeature(org.opengis.feature.simple.SimpleFeature) Ignore(org.junit.Ignore) Test(org.junit.Test)

Example 5 with FilterFactoryImpl

use of org.geotools.filter.FilterFactoryImpl in project ddf by codice.

the class TestCswSource method testAbsoluteTemporalSearchTwoRanges.

@Test
public void testAbsoluteTemporalSearchTwoRanges() throws JAXBException, UnsupportedQueryException, DatatypeConfigurationException, SAXException, IOException, SecurityServiceException {
    // Setup
    String expectedXml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n" + "<GetRecords resultType=\"results\" outputFormat=\"application/xml\"\r\n" + "    outputSchema=\"http://www.opengis.net/cat/csw/2.0.2\" startPosition=\"1\"\r\n" + "    maxRecords=\"10\" service=\"CSW\" version=\"2.0.2\"" + "    xmlns=\"http://www.opengis.net/cat/csw/2.0.2\"" + "    xmlns:csw=\"http://www.opengis.net/cat/csw/2.0.2\"" + "    xmlns:ogc=\"http://www.opengis.net/ogc\">\r\n" + "    <Query typeNames=\"csw:Record\">\r\n" + "        <ElementSetName>full</ElementSetName>\r\n" + "        <Constraint version=\"1.1.0\">\r\n" + "            <ogc:Filter>\r\n" + "                <ogc:Or>\r\n" + "                    <ogc:PropertyIsBetween>\r\n" + "                        <ogc:PropertyName>effective</ogc:PropertyName>\r\n" + "                        <ogc:LowerBoundary>\r\n" + "                            <ogc:Literal>START1_DATE_TIME</ogc:Literal>\r\n" + "                        </ogc:LowerBoundary>\r\n" + "                        <ogc:UpperBoundary>\r\n" + "                            <ogc:Literal>END1_DATE_TIME</ogc:Literal>\r\n" + "                        </ogc:UpperBoundary>\r\n" + "                    </ogc:PropertyIsBetween>\r\n" + "                    <ogc:PropertyIsBetween>\r\n" + "                        <ogc:PropertyName>effective</ogc:PropertyName>\r\n" + "                        <ogc:LowerBoundary>\r\n" + "                            <ogc:Literal>START2_DATE_TIME</ogc:Literal>\r\n" + "                        </ogc:LowerBoundary>\r\n" + "                        <ogc:UpperBoundary>\r\n" + "                            <ogc:Literal>END2_DATE_TIME</ogc:Literal>\r\n" + "                        </ogc:UpperBoundary>\r\n" + "                    </ogc:PropertyIsBetween>\r\n" + "                </ogc:Or>\r\n" + "            </ogc:Filter>\r\n" + "        </Constraint>\r\n" + "    </Query>\r\n" + "</GetRecords>\r\n";
    final int pageSize = 10;
    final int numRecordsReturned = 1;
    final long numRecordsMatched = 10;
    setupMockContextForMetacardTypeRegistrationAndUnregistration(getDefaultContentTypes());
    try {
        configureMockCsw(numRecordsReturned, numRecordsMatched, CswConstants.VERSION_2_0_2);
    } catch (CswException e) {
        fail("Could not configure Mock Remote CSW: " + e.getMessage());
    }
    DateTime startDate = new DateTime(2012, 5, 1, 0, 0, 0, 0);
    DateTime endDate = new DateTime(2012, 12, 31, 0, 0, 0, 0);
    DateTime startDate2 = new DateTime(2013, 5, 1, 0, 0, 0, 0);
    DateTime endDate2 = new DateTime(2013, 12, 31, 0, 0, 0, 0);
    DateTimeFormatter fmt = ISODateTimeFormat.dateTime();
    // Load the expected start and end date time into the excepted result
    // XML
    expectedXml = expectedXml.replace("START1_DATE_TIME", fmt.print(startDate));
    expectedXml = expectedXml.replace("END1_DATE_TIME", fmt.print(endDate));
    expectedXml = expectedXml.replace("START2_DATE_TIME", fmt.print(startDate2));
    expectedXml = expectedXml.replace("END2_DATE_TIME", fmt.print(endDate2));
    // Single absolute time range to search across
    FilterFactory filterFactory = new FilterFactoryImpl();
    Filter temporalFilter1 = builder.attribute(Metacard.EFFECTIVE).is().during().dates(startDate.toDate(), endDate.toDate());
    Filter temporalFilter2 = builder.attribute(Metacard.EFFECTIVE).is().during().dates(startDate2.toDate(), endDate2.toDate());
    Filter temporalFilter = filterFactory.or(temporalFilter1, temporalFilter2);
    QueryImpl temporalQuery = new QueryImpl(temporalFilter);
    temporalQuery.setPageSize(pageSize);
    AbstractCswSource cswSource = getCswSource(mockCsw, mockContext);
    cswSource.setCswUrl(URL);
    cswSource.setId(ID);
    // Perform test
    cswSource.query(new QueryRequestImpl(temporalQuery));
    // Verify
    ArgumentCaptor<GetRecordsType> captor = ArgumentCaptor.forClass(GetRecordsType.class);
    try {
        verify(mockCsw, atLeastOnce()).getRecords(captor.capture());
    } catch (CswException e) {
        fail("Could not verify Mock CSW record count " + e.getMessage());
    }
    GetRecordsType getRecordsType = captor.getValue();
    String xml = getGetRecordsTypeAsXml(getRecordsType);
    Diff xmlDiff = new Diff(expectedXml, xml);
    if (!xmlDiff.similar()) {
        LOGGER.error("Unexpected XML request sent");
        LOGGER.error("Expected: {}", expectedXml);
        LOGGER.error("Actual: {}", xml);
    }
    assertXMLEqual(expectedXml, xml);
}
Also used : Diff(org.custommonkey.xmlunit.Diff) CswException(org.codice.ddf.spatial.ogc.csw.catalog.common.CswException) GetRecordsType(net.opengis.cat.csw.v_2_0_2.GetRecordsType) Matchers.anyString(org.mockito.Matchers.anyString) DateTime(org.joda.time.DateTime) FilterFactory(org.opengis.filter.FilterFactory) QueryImpl(ddf.catalog.operation.impl.QueryImpl) Filter(org.opengis.filter.Filter) QueryRequestImpl(ddf.catalog.operation.impl.QueryRequestImpl) FilterFactoryImpl(org.geotools.filter.FilterFactoryImpl) DateTimeFormatter(org.joda.time.format.DateTimeFormatter) Test(org.junit.Test)

Aggregations

FilterFactoryImpl (org.geotools.filter.FilterFactoryImpl)58 Test (org.junit.Test)50 FilterFactory (org.opengis.filter.FilterFactory)42 Filter (org.opengis.filter.Filter)39 QueryImpl (ddf.catalog.operation.impl.QueryImpl)35 QueryRequestImpl (ddf.catalog.operation.impl.QueryRequestImpl)33 SourceResponse (ddf.catalog.operation.SourceResponse)21 Metacard (ddf.catalog.data.Metacard)18 SolrProviderTest (ddf.catalog.source.solr.SolrProviderTest)17 Date (java.util.Date)12 ArrayList (java.util.ArrayList)11 MetacardImpl (ddf.catalog.data.impl.MetacardImpl)9 QueryResponse (ddf.catalog.operation.QueryResponse)9 Result (ddf.catalog.data.Result)8 CreateResponse (ddf.catalog.operation.CreateResponse)8 QueryRequest (ddf.catalog.operation.QueryRequest)8 CreateRequestImpl (ddf.catalog.operation.impl.CreateRequestImpl)8 Calendar (java.util.Calendar)6 DateTime (org.joda.time.DateTime)6 Ignore (org.junit.Ignore)6