List of usage examples for org.apache.commons.collections4.functors NotPredicate NotPredicate
public NotPredicate(final Predicate<? super T> predicate)
From source file:com.link_intersystems.lang.reflect.ChooseMostSpecificMemberStrategy.java
protected Member2<?> chooseMostSpecificImpl(List<? extends Member2<?>> potentiallyApplicable) { boolean containsVarargsInvokable = CollectionUtils.exists(potentiallyApplicable, VarargInvokablePredicate.INSTANCE); Member2<?> mostSpecific = null; if (containsVarargsInvokable) { Member2<?> noVarargsMethod = (Member2<?>) CollectionUtils.find(potentiallyApplicable, NotPredicate.notPredicate(VarargInvokablePredicate.INSTANCE)); mostSpecific = noVarargsMethod;/*from w ww .j a v a 2 s. c o m*/ } else { MostSpecificInvokableClosure mostSpecificInvokableClosure = new MostSpecificInvokableClosure(); CollectionUtils.forAllDo(potentiallyApplicable, mostSpecificInvokableClosure); mostSpecific = mostSpecificInvokableClosure.getMostSpecific(); } return mostSpecific; }
From source file:com.link_intersystems.lang.reflect.criteria.ClassCriteriaTest.java
@Test public void reportAll() { ClassCriteria classCriteria = new ClassCriteria(); classCriteria.setResult(Result.ALL); classCriteria.setTraverseStrategy(TraverseStrategy.DEPTH_FIRST); classCriteria.add(NotPredicate.notPredicate(ReflectFacade.getIsInterfacePredicate())); classCriteria.stopAt(AbstractCollection.class); Iterator<Class<?>> classIterator = classCriteria.getIterable(ArrayList.class).iterator(); Class<?>[] expectedClasses = new Class<?>[] { ArrayList.class, AbstractList.class, AbstractCollection.class }; for (int i = 0; i < expectedClasses.length; i++) { assertTrue(classIterator.hasNext()); Class<?> next = classIterator.next(); assertEquals(expectedClasses[i], next); }/* ww w .j av a2 s . c o m*/ assertFalse(classIterator.hasNext()); }
From source file:com.link_intersystems.lang.reflect.criteria.MemberCriteria.java
@SuppressWarnings("unchecked") protected Iterator<T> applyAccessAndNamePredicates(Iterator<T> iterator) { List<Predicate<?>> predicates = new ArrayList<Predicate<?>>(); int accessModifiers = 0; Collection<AccessType> accesses = getAccesses(); for (AccessType access : accesses) { switch (access) { case PUBLIC: accessModifiers |= Modifier.PUBLIC; break; case PRIVATE: accessModifiers |= Modifier.PRIVATE; break; case PROTECTED: accessModifiers |= Modifier.PROTECTED; break; default:/*from w w w . j a va2 s. com*/ break; } } Predicate<Member> accessModifierPredicate = new MemberModifierPredicate(accessModifiers, Match.AT_LEAST_ONE); if (accesses.contains(AccessType.DEFAULT)) { accessModifierPredicate = OrPredicate.orPredicate(accessModifierPredicate, NotPredicate.notPredicate(new MemberModifierPredicate( Modifier.PRIVATE | Modifier.PUBLIC | Modifier.PROTECTED, Match.AT_LEAST_ONE))); } predicates.add(accessModifierPredicate); int modifiers = getModifiers(); if (modifiers != 0) { predicates.add(new MemberModifierPredicate(modifiers, Match.AT_LEAST_ALL)); } String name = getName(); if (name != null) { predicates.add(ReflectFacade.getMemberNamePredicate(name)); } Pattern pattern = getPattern(); if (pattern != null) { predicates.add(ReflectFacade.getMemberNamePatternPredicate(pattern)); } Predicate<T> allPredicate = AllPredicate.allPredicate((Collection<? extends Predicate<T>>) predicates); iterator = IteratorUtils.filteredIterator(iterator, allPredicate); return iterator; }
From source file:com.link_intersystems.lang.reflect.criteria.ClassCriteriaTest.java
@Test public void classesOnly() { classCriteria.setTraverseStrategy(TraverseStrategy.DEPTH_FIRST); classCriteria.setSelection(ClassType.CLASSES); classCriteria.add(NotPredicate.notPredicate(ReflectFacade.getIsInterfacePredicate())); Iterator<Class<?>> iterator = classCriteria.getIterable(ArrayList.class).iterator(); assertNotNull(iterator);/*from www . jav a2s. c o m*/ assertTrue(iterator.hasNext()); Class<?> next = iterator.next(); assertEquals(ArrayList.class, next); next = iterator.next(); assertEquals(AbstractList.class, next); assertTrue(iterator.hasNext()); next = iterator.next(); assertEquals(AbstractCollection.class, next); assertTrue(iterator.hasNext()); next = iterator.next(); assertEquals(Object.class, next); assertFalse(iterator.hasNext()); }
From source file:com.link_intersystems.lang.reflect.criteria.ClassCriteriaTest.java
@SuppressWarnings("unchecked") @Test/*from w w w.ja va2 s .c o m*/ public void visitAllFilter() { classCriteria.setTraverseStrategy(TraverseStrategy.DEPTH_FIRST); classCriteria.setSelection(ClassType.INTERFACES); classCriteria.add(ReflectFacade.getIsInterfacePredicate()); classCriteria.add(NotPredicate .notPredicate(EqualPredicate.equalPredicate(GenericSubSubWithMultipleInterfaces.class))); classCriteria.setTraverseClassesUniquely(false); Iterator<Class<?>> iterator = classCriteria.getIterable(GenericSubSubWithMultipleInterfaces.class) .iterator(); List<Class<?>> interfaces = IteratorUtils.toList(iterator); Collection<Class<?>> expectedInterfaces = new ArrayList<Class<?>>(Arrays.asList(GenericSubInterface.class, GenericInterface_Types_A_B_C.class, GenericInterface_Types_A_B_C.class)); for (Class<?> interf : interfaces) { assertTrue("Unexpected " + interf + " in interator", expectedInterfaces.remove(interf)); } assertTrue("Iterator does not iterator over the interfaces " + expectedInterfaces, expectedInterfaces.isEmpty()); }