Search in sources :

Example 1 with FilterConfigInterface

use of com.sldeditor.filter.v2.function.FilterConfigInterface in project sldeditor by robward-scisys.

the class ExpressionPanelv2 method addFilter.

/**
 * Adds the filter.
 *
 * @param node the node
 * @return the filter
 */
private Filter addFilter(FilterNode node) {
    Filter filter = node.getFilter();
    FilterConfigInterface filterConfig = node.getFilterConfig();
    if (filter instanceof LogicFilterImpl) {
        List<Filter> filterList = new ArrayList<Filter>();
        createFilterList(node, filterList);
        return filterConfig.createLogicFilter(filterList);
    }
    List<Expression> parameterFilter = new ArrayList<Expression>();
    if (filter instanceof FidFilterImpl) {
        createExpressionParameterList(node, 1, parameterFilter);
    } else if (filter instanceof BinaryTemporalOperator) {
        createExpressionParameterList(node, 2, parameterFilter);
    } else if (filter instanceof PropertyIsBetween) {
        createExpressionParameterList(node, 3, parameterFilter);
    } else if (filter instanceof PropertyIsNull) {
        createExpressionParameterList(node, 1, parameterFilter);
    } else if (filter instanceof PropertyIsLike) {
        createExpressionParameterList(node, 6, parameterFilter);
    } else if (filter instanceof BinarySpatialOperator) {
        createExpressionParameterList(node, 2, parameterFilter);
    } else if (filter instanceof BinaryComparisonAbstract) {
        if (filter instanceof Not) {
            createExpressionParameterList(node, 1, parameterFilter);
        } else if (filter instanceof PropertyIsGreaterThan) {
            createExpressionParameterList(node, 2, parameterFilter);
        } else {
            createExpressionParameterList(node, 3, parameterFilter);
        }
    } else {
        return filter;
    }
    return filterConfig.createFilter(parameterFilter);
}
Also used : PropertyIsLike(org.opengis.filter.PropertyIsLike) ArrayList(java.util.ArrayList) FilterConfigInterface(com.sldeditor.filter.v2.function.FilterConfigInterface) BinaryTemporalOperator(org.opengis.filter.temporal.BinaryTemporalOperator) Not(org.opengis.filter.Not) PropertyIsNull(org.opengis.filter.PropertyIsNull) Filter(org.opengis.filter.Filter) Expression(org.opengis.filter.expression.Expression) LogicFilterImpl(org.geotools.filter.LogicFilterImpl) FidFilterImpl(org.geotools.filter.FidFilterImpl) PropertyIsBetween(org.opengis.filter.PropertyIsBetween) BinaryComparisonAbstract(org.geotools.filter.BinaryComparisonAbstract) BinarySpatialOperator(org.opengis.filter.spatial.BinarySpatialOperator) PropertyIsGreaterThan(org.opengis.filter.PropertyIsGreaterThan)

Example 2 with FilterConfigInterface

use of com.sldeditor.filter.v2.function.FilterConfigInterface in project sldeditor by robward-scisys.

the class FilterPanelv2 method addFilter.

/**
 * Adds the filter.
 *
 * @param node the node
 * @return the filter
 */
private Filter addFilter(FilterNode node) {
    Filter filter = node.getFilter();
    FilterConfigInterface filterConfig = node.getFilterConfig();
    if (filter instanceof LogicFilterImpl) {
        List<Filter> filterList = new ArrayList<Filter>();
        createFilterList(node, filterList);
        return filterConfig.createLogicFilter(filterList);
    }
    List<Expression> parameterFilter = new ArrayList<Expression>();
    if (filter instanceof FidFilterImpl) {
        createExpressionParameterList(node, 1, parameterFilter);
    } else if (filter instanceof BinaryTemporalOperator) {
        createExpressionParameterList(node, 2, parameterFilter);
    } else if (filter instanceof PropertyIsBetween) {
        createExpressionParameterList(node, 3, parameterFilter);
    } else if (filter instanceof PropertyIsNull) {
        createExpressionParameterList(node, 1, parameterFilter);
    } else if (filter instanceof PropertyIsLike) {
        createExpressionParameterList(node, 6, parameterFilter);
    } else if (filter instanceof BinarySpatialOperator) {
        createExpressionParameterList(node, 2, parameterFilter);
    } else if (filter instanceof BinaryComparisonAbstract) {
        if (filter instanceof Not) {
            createExpressionParameterList(node, 1, parameterFilter);
        } else if (filter instanceof PropertyIsGreaterThan) {
            createExpressionParameterList(node, 2, parameterFilter);
        } else {
            createExpressionParameterList(node, 3, parameterFilter);
        }
    } else {
        return filter;
    }
    return filterConfig.createFilter(parameterFilter);
}
Also used : PropertyIsLike(org.opengis.filter.PropertyIsLike) ArrayList(java.util.ArrayList) FilterConfigInterface(com.sldeditor.filter.v2.function.FilterConfigInterface) BinaryTemporalOperator(org.opengis.filter.temporal.BinaryTemporalOperator) Not(org.opengis.filter.Not) PropertyIsNull(org.opengis.filter.PropertyIsNull) Filter(org.opengis.filter.Filter) Expression(org.opengis.filter.expression.Expression) LogicFilterImpl(org.geotools.filter.LogicFilterImpl) FidFilterImpl(org.geotools.filter.FidFilterImpl) PropertyIsBetween(org.opengis.filter.PropertyIsBetween) BinaryComparisonAbstract(org.geotools.filter.BinaryComparisonAbstract) BinarySpatialOperator(org.opengis.filter.spatial.BinarySpatialOperator) PropertyIsGreaterThan(org.opengis.filter.PropertyIsGreaterThan)

Example 3 with FilterConfigInterface

use of com.sldeditor.filter.v2.function.FilterConfigInterface in project sldeditor by robward-scisys.

the class FilterManager method getFilterConfigList.

/**
 * Gets the filter config list.
 *
 * @return the filter config list
 */
@Override
public List<FilterConfigInterface> getFilterConfigList() {
    List<FilterConfigInterface> filterConfigList = new ArrayList<FilterConfigInterface>();
    // Logic filters
    filterConfigList.add(new And());
    filterConfigList.add(new Or());
    filterConfigList.add(new Not());
    filterConfigList.add(new IsEqualTo());
    filterConfigList.add(new IsNotEqualTo());
    filterConfigList.add(new IsLessThan());
    filterConfigList.add(new IsLessThanEqualTo());
    filterConfigList.add(new IsGreaterThan());
    filterConfigList.add(new IsGreaterThanEqualTo());
    filterConfigList.add(new IsBetween());
    filterConfigList.add(new IsNull());
    filterConfigList.add(new IsLike());
    // Temporal
    filterConfigList.add(new After());
    filterConfigList.add(new Before());
    filterConfigList.add(new During());
    filterConfigList.add(new TEquals());
    filterConfigList.add(new TOverlaps());
    filterConfigList.add(new TContains());
    // Geometry
    filterConfigList.add(new BBox());
    filterConfigList.add(new Beyond());
    filterConfigList.add(new Contains());
    filterConfigList.add(new Crosses());
    filterConfigList.add(new Disjoint());
    filterConfigList.add(new DWithin());
    filterConfigList.add(new Equals());
    filterConfigList.add(new Intersects());
    filterConfigList.add(new Overlaps());
    filterConfigList.add(new Touches());
    filterConfigList.add(new Within());
    return filterConfigList;
}
Also used : Before(com.sldeditor.filter.v2.function.temporal.Before) TOverlaps(com.sldeditor.filter.v2.function.temporal.TOverlaps) Overlaps(com.sldeditor.filter.v2.function.geometry.Overlaps) Or(com.sldeditor.filter.v2.function.logic.Or) ArrayList(java.util.ArrayList) Beyond(com.sldeditor.filter.v2.function.temporal.Beyond) IsLike(com.sldeditor.filter.v2.function.misc.IsLike) TEquals(com.sldeditor.filter.v2.function.temporal.TEquals) During(com.sldeditor.filter.v2.function.temporal.During) IsEqualTo(com.sldeditor.filter.v2.function.property.IsEqualTo) Crosses(com.sldeditor.filter.v2.function.geometry.Crosses) IsLessThan(com.sldeditor.filter.v2.function.property.IsLessThan) DWithin(com.sldeditor.filter.v2.function.geometry.DWithin) Intersects(com.sldeditor.filter.v2.function.geometry.Intersects) Disjoint(com.sldeditor.filter.v2.function.geometry.Disjoint) Touches(com.sldeditor.filter.v2.function.geometry.Touches) IsNotEqualTo(com.sldeditor.filter.v2.function.property.IsNotEqualTo) TOverlaps(com.sldeditor.filter.v2.function.temporal.TOverlaps) IsBetween(com.sldeditor.filter.v2.function.property.IsBetween) IsGreaterThanEqualTo(com.sldeditor.filter.v2.function.property.IsGreaterThanEqualTo) IsGreaterThan(com.sldeditor.filter.v2.function.property.IsGreaterThan) TContains(com.sldeditor.filter.v2.function.temporal.TContains) Not(com.sldeditor.filter.v2.function.logic.Not) TEquals(com.sldeditor.filter.v2.function.temporal.TEquals) Equals(com.sldeditor.filter.v2.function.geometry.Equals) And(com.sldeditor.filter.v2.function.logic.And) BBox(com.sldeditor.filter.v2.function.geometry.BBox) After(com.sldeditor.filter.v2.function.temporal.After) TContains(com.sldeditor.filter.v2.function.temporal.TContains) Contains(com.sldeditor.filter.v2.function.geometry.Contains) Within(com.sldeditor.filter.v2.function.geometry.Within) DWithin(com.sldeditor.filter.v2.function.geometry.DWithin) IsNull(com.sldeditor.filter.v2.function.misc.IsNull) IsLessThanEqualTo(com.sldeditor.filter.v2.function.property.IsLessThanEqualTo)

Example 4 with FilterConfigInterface

use of com.sldeditor.filter.v2.function.FilterConfigInterface in project sldeditor by robward-scisys.

the class FilterNodeTest method testSetFilter.

/**
 * Test method for
 * {@link com.sldeditor.filter.v2.expression.FilterNode#setFilter(org.opengis.filter.Filter, com.sldeditor.filter.v2.function.FilterConfigInterface)}.
 */
@Test
public void testSetFilter() {
    FilterFactory ff = CommonFactoryFinder.getFilterFactory();
    FilterNode node = new FilterNode();
    // BinaryComparisonAbstract
    Filter filter = ff.greaterOrEqual(ff.literal(45), ff.literal(23));
    node.setFilter(filter, null);
    node.addFilter();
    String actual = node.toString();
    String expected = "Filter : " + Localisation.getString(ExpressionPanelv2.class, "FilterNode.filterNotSet");
    assertTrue(actual.compareTo(expected) == 0);
    assertEquals(filter, node.getFilter());
    FilterConfigInterface filterConfig = new IsGreaterThan();
    node.setFilter(filter, filterConfig);
    assertEquals(filterConfig, node.getFilterConfig());
    expected = "Filter : PropertyIsGreaterThan";
    actual = node.toString();
    assertTrue(actual.compareTo(expected) == 0);
    // PropertyIsLike
    filter = ff.like(ff.literal("abc def ghi"), "abc");
    filterConfig = new IsLike();
    node.setFilter(filter, filterConfig);
    expected = "Filter : Like";
    actual = node.toString();
    assertTrue(actual.compareTo(expected) == 0);
    // BinarySpatialOperator
    Hints hints = new Hints(Hints.CRS, DefaultGeographicCRS.WGS84);
    PositionFactory positionFactory = GeometryFactoryFinder.getPositionFactory(hints);
    GeometryFactory geometryFactory = GeometryFactoryFinder.getGeometryFactory(hints);
    PrimitiveFactory primitiveFactory = GeometryFactoryFinder.getPrimitiveFactory(hints);
    AggregateFactory aggregateFactory = GeometryFactoryFinder.getAggregateFactory(hints);
    WKTParser wktParser = new WKTParser(geometryFactory, primitiveFactory, positionFactory, aggregateFactory);
    Geometry geometry = null;
    try {
        geometry = wktParser.parse("POINT( 48.44 -123.37)");
    } catch (ParseException e) {
        e.printStackTrace();
        fail();
    }
    filter = ff.overlaps("property", geometry);
    filterConfig = new Overlaps();
    node.setFilter(filter, filterConfig);
    expected = "Filter : Overlaps";
    actual = node.toString();
    assertTrue(actual.compareTo(expected) == 0);
    // Is Between
    filter = ff.between(ff.literal(25), ff.literal(5), ff.literal(50));
    filterConfig = new IsBetween();
    node.setFilter(filter, filterConfig);
    expected = "Filter : PropertyIsBetween";
    actual = node.toString();
    assertTrue(actual.compareTo(expected) == 0);
    // Is Null
    filter = ff.isNull(ff.literal(12));
    filterConfig = new IsNull();
    node.setFilter(filter, filterConfig);
    expected = "Filter : IsNull";
    actual = node.toString();
    assertTrue(actual.compareTo(expected) == 0);
    // BinaryTemporalOperator
    filter = ff.after(ff.literal(12), ff.literal(312));
    filterConfig = new After();
    node.setFilter(filter, filterConfig);
    expected = "Filter : After";
    actual = node.toString();
    assertTrue(actual.compareTo(expected) == 0);
    // Logic filter
    filter = ff.and(ff.after(ff.literal(12), ff.literal(312)), ff.between(ff.literal(25), ff.literal(5), ff.literal(50)));
    filterConfig = new And();
    node.setFilter(filter, filterConfig);
    expected = "Filter : And";
    actual = node.toString();
    assertTrue(actual.compareTo(expected) == 0);
    node.addFilter();
}
Also used : ExpressionPanelv2(com.sldeditor.filter.v2.expression.ExpressionPanelv2) Overlaps(com.sldeditor.filter.v2.function.geometry.Overlaps) GeometryFactory(org.opengis.geometry.coordinate.GeometryFactory) Hints(org.geotools.factory.Hints) PositionFactory(org.opengis.geometry.PositionFactory) FilterNode(com.sldeditor.filter.v2.expression.FilterNode) IsBetween(com.sldeditor.filter.v2.function.property.IsBetween) FilterConfigInterface(com.sldeditor.filter.v2.function.FilterConfigInterface) IsGreaterThan(com.sldeditor.filter.v2.function.property.IsGreaterThan) WKTParser(org.geotools.geometry.text.WKTParser) IsLike(com.sldeditor.filter.v2.function.misc.IsLike) PrimitiveFactory(org.opengis.geometry.primitive.PrimitiveFactory) FilterFactory(org.opengis.filter.FilterFactory) Geometry(org.opengis.geometry.Geometry) Filter(org.opengis.filter.Filter) And(com.sldeditor.filter.v2.function.logic.And) After(com.sldeditor.filter.v2.function.temporal.After) IsNull(com.sldeditor.filter.v2.function.misc.IsNull) AggregateFactory(org.opengis.geometry.aggregate.AggregateFactory) ParseException(java.text.ParseException) Test(org.junit.Test)

Example 5 with FilterConfigInterface

use of com.sldeditor.filter.v2.function.FilterConfigInterface in project sldeditor by robward-scisys.

the class FilterManagerTest method testGetFilterConfigFilter.

/**
 * Test method for
 * {@link com.sldeditor.filter.v2.function.FilterManager#getFilterConfig(org.opengis.filter.Filter)}.
 */
@Test
public void testGetFilterConfigFilter() {
    assertNull(FilterManager.getInstance().getFilterConfig((Filter) null));
    List<FilterConfigInterface> filterConfigList = FilterManager.getInstance().getFilterConfigList();
    for (FilterConfigInterface filterConfig : filterConfigList) {
        Filter filter = filterConfig.createFilter();
        FilterConfigInterface actualFilterConfig = FilterManager.getInstance().getFilterConfig(filter);
        assertEquals(filterConfig.getClass(), actualFilterConfig.getClass());
    }
}
Also used : Filter(org.opengis.filter.Filter) FilterConfigInterface(com.sldeditor.filter.v2.function.FilterConfigInterface) Test(org.junit.Test)

Aggregations

FilterConfigInterface (com.sldeditor.filter.v2.function.FilterConfigInterface)9 ArrayList (java.util.ArrayList)5 Test (org.junit.Test)5 Filter (org.opengis.filter.Filter)5 Expression (org.opengis.filter.expression.Expression)4 IsLike (com.sldeditor.filter.v2.function.misc.IsLike)3 IsNull (com.sldeditor.filter.v2.function.misc.IsNull)3 BinaryComparisonAbstract (org.geotools.filter.BinaryComparisonAbstract)3 LogicFilterImpl (org.geotools.filter.LogicFilterImpl)3 Not (org.opengis.filter.Not)3 PropertyIsBetween (org.opengis.filter.PropertyIsBetween)3 PropertyIsLike (org.opengis.filter.PropertyIsLike)3 PropertyIsNull (org.opengis.filter.PropertyIsNull)3 BinarySpatialOperator (org.opengis.filter.spatial.BinarySpatialOperator)3 BinaryTemporalOperator (org.opengis.filter.temporal.BinaryTemporalOperator)3 FilterName (com.sldeditor.filter.v2.function.FilterName)2 Overlaps (com.sldeditor.filter.v2.function.geometry.Overlaps)2 And (com.sldeditor.filter.v2.function.logic.And)2 IsBetween (com.sldeditor.filter.v2.function.property.IsBetween)2 IsGreaterThan (com.sldeditor.filter.v2.function.property.IsGreaterThan)2