Example usage for org.apache.commons.collections ClosureUtils ifClosure

List of usage examples for org.apache.commons.collections ClosureUtils ifClosure

Introduction

In this page you can find the example usage for org.apache.commons.collections ClosureUtils ifClosure.

Prototype

public static Closure ifClosure(Predicate predicate, Closure trueClosure, Closure falseClosure) 

Source Link

Document

Create a new Closure that calls one of two closures depending on the specified predicate.

Usage

From source file:ClosureExample.java

public static void main(String args[]) {
    Closure ifClosure = ClosureUtils.ifClosure(PredicateUtils.equalPredicate(new Integer(20)),
            ClosureUtils.nopClosure(), ClosureUtils.exceptionClosure());
    ifClosure.execute(new Integer(20));
    //      ifClosure.execute(new Integer(30));
}

From source file:com.nwea.samples.apachecommons.collections.SampleCollectionUtils.java

@SuppressWarnings("unchecked")
public static void setDefaultHomeroomsBySex(Collection<Student> students, final String femaleHomeroom,
        final String maleHomeroom) {
    // predicate returns true if student sex is "F"
    Predicate ifStatement = new Predicate() {
        public boolean evaluate(Object obj) {
            Student student = (Student) obj;
            return student.getSex().equals("F");
        }/*from ww w .ja v a  2s .  c  om*/
    };

    // closure calls setHomeroom() on Student refs.
    // allows to set "homeRoom" var in instance initializer
    class SetHomeroom implements Closure {
        String homeRoom;

        public void execute(Object obj) {
            Student student = (Student) obj;
            student.setHomeroom(homeRoom);
        }
    }

    CollectionUtils.forAllDo(students, ClosureUtils.ifClosure(ifStatement, new SetHomeroom() {
        {
            homeRoom = femaleHomeroom;
        }
    }, new SetHomeroom() {
        {
            homeRoom = maleHomeroom;
        }
    })); // crazy braces/parens!
}

From source file:com.newlandframework.avatarmq.broker.ProducerMessageHook.java

private void filterByTopic(String topic) {
    Predicate focusAllPredicate = new Predicate() {
        public boolean evaluate(Object object) {
            ConsumerClusters clusters = (ConsumerClusters) object;
            return clusters.findSubscriptionData(topic) != null;
        }//from   ww w  .  j  a va 2  s.co  m
    };

    AnyPredicate any = new AnyPredicate(new Predicate[] { focusAllPredicate });

    Closure joinClosure = new Closure() {
        public void execute(Object input) {
            if (input instanceof ConsumerClusters) {
                ConsumerClusters clusters = (ConsumerClusters) input;
                clustersSet.add(clusters);
            }
        }
    };

    Closure ignoreClosure = new Closure() {
        public void execute(Object input) {
        }
    };

    Closure ifClosure = ClosureUtils.ifClosure(any, joinClosure, ignoreClosure);

    CollectionUtils.forAllDo(focusTopicGroup, ifClosure);
}