public static Filter fullTextSearch(final String subsequence) { return contains(ANY_TEXT, subsequence); }
/** * @return a predicate that evaluates whether the given String {@code property} contains the * required character string, in a <b>case insensitive</b> manner. */ public static Filter contains(final String property, final String subsequence) { PropertyName propertyName = factory.property(property); return contains(propertyName, subsequence); }
@Test public void testContains() { assertTrue(contains("URI", "example").evaluate(ns)); assertFalse(contains("resource.ns.URI", "example").evaluate(vectorLayer)); assertTrue(contains("resource.namespace.URI", "example").evaluate(vectorLayer)); assertTrue(contains("id", "vectorLayerId").evaluate(vectorLayer)); assertTrue(contains("id", "vectorLayerID").evaluate(vectorLayer)); assertTrue(contains("id", "torLAY").evaluate(vectorLayer)); assertTrue(contains("styles.name", "style2").evaluate(vectorLayer)); assertTrue(contains("styles.name", "Style2").evaluate(vectorLayer)); assertTrue(contains("styles.name", "YL").evaluate(vectorLayer)); assertFalse(contains("styles.name", "style3").evaluate(vectorLayer)); String name = featureType.getName(); assertTrue(contains("resource.name", name).evaluate(vectorLayer)); assertFalse(contains("resource.name", "?").evaluate(vectorLayer)); featureType.setName("name?.*$[]&()"); assertTrue(contains("resource.name", "?").evaluate(vectorLayer)); assertTrue(contains("resource.name", ".").evaluate(vectorLayer)); assertTrue(contains("resource.name", "*").evaluate(vectorLayer)); featureType.setName(null); assertFalse(contains("resource.name", name).evaluate(vectorLayer)); } }
assertEquals(expected, actual); filter = contains("name", "t"); actual = Sets.newHashSet(catalog.list(FeatureTypeInfo.class, filter)); assertTrue(expected.equals(actual)); assertEquals(expected, actual); filter = or(contains("name", "t2"), contains("name", "t1")); expected = Sets.newHashSet(ft1, ft2); actual = Sets.newHashSet(catalog.list(FeatureTypeInfo.class, filter)); catalog.add(l3 = newLayer(ft3, s3, s5, s6)); filter = contains("styles.name", "s6"); expected = Sets.newHashSet(l3); actual = Sets.newHashSet(catalog.list(LayerInfo.class, filter)); assertEquals(expected, actual); filter = or(contains("styles.name", "s6"), equal("defaultStyle.name", "s1")); expected = Sets.newHashSet(l1, l3); actual = Sets.newHashSet(catalog.list(LayerInfo.class, filter));