Predicates.and(Predicates.isInstanceOf(LayerInfo.class), filter); Filter layerGroupFilter = Predicates.isInstanceOf(LayerGroupInfo.class); return Predicates.or(layerFilter, layerGroupFilter); } else {
@Test public void testFunction() { Filter filter = Predicates.isInstanceOf(Object.class); // Ensure the filter exists assertNotNull(filter); // Ensure the filter returned is a PropertyIsEqual filter assertTrue(filter instanceof PropertyIsEqualTo); }
@Test public void testInstanceOfString() { // Ensuring that this function return true only when the object // class is String Filter filter = Predicates.isInstanceOf(String.class); assertTrue(filter.evaluate("test")); assertFalse(filter.evaluate(new Object())); assertFalse(filter.evaluate(1)); assertFalse(filter.evaluate(true)); }
@Test public void testInstanceOfObject() { // Ensuring that this function always return true when the input // class is Object Filter filter = Predicates.isInstanceOf(Object.class); assertTrue(filter.evaluate(new Object())); assertTrue(filter.evaluate("test")); assertTrue(filter.evaluate(1)); assertTrue(filter.evaluate(true)); }
@Test public void testInstanceOfLayerInfo() { // Ensuring that this function return true only when the object // class is LayerInfo Filter filter = Predicates.isInstanceOf(LayerInfo.class); assertTrue(filter.evaluate(new LayerInfoImpl())); assertFalse(filter.evaluate("test")); assertFalse(filter.evaluate(new Object())); assertFalse(filter.evaluate(1)); assertFalse(filter.evaluate(true)); } }
@Override protected Filter getFilter() { Filter filter = super.getFilter(); // need to get only advertised and enabled layers Filter isLayerInfo = Predicates.isInstanceOf(LayerInfo.class); Filter isLayerGroupInfo = Predicates.isInstanceOf(LayerGroupInfo.class); Filter enabledFilter = Predicates.equal("resource.enabled", true); Filter storeEnabledFilter = Predicates.equal("resource.store.enabled", true); Filter advertisedFilter = Predicates.equal("resource.advertised", true); // return only layer groups that are not containers Filter nonContainerGroup = Predicates.or( Predicates.equal("mode", LayerGroupInfo.Mode.EO), Predicates.equal("mode", LayerGroupInfo.Mode.NAMED), Predicates.equal("mode", LayerGroupInfo.Mode.OPAQUE_CONTAINER), Predicates.equal("mode", LayerGroupInfo.Mode.SINGLE)); // Filter for the Layers Filter layerFilter = Predicates.and(isLayerInfo, enabledFilter, storeEnabledFilter, advertisedFilter); // Filter for the LayerGroups Filter layerGroupFilter = Predicates.and(isLayerGroupInfo, nonContainerGroup); // Or filter for merging them Filter orFilter = Predicates.or(layerFilter, layerGroupFilter); // And between the new filter and the initial filter return Predicates.and(filter, orFilter); }