Search in sources :

Example 1 with Condition

use of com.nextdoor.bender.operation.conditional.ConditionalOperationConfig.Condition in project bender by Nextdoor.

the class ConditionalOperationFactory method setConf.

@Override
public void setConf(AbstractConfig config) {
    this.config = (ConditionalOperationConfig) config;
    List<Pair<FilterOperation, List<OperationProcessor>>> cases = new ArrayList<Pair<FilterOperation, List<OperationProcessor>>>();
    OperationFactoryFactory off = new OperationFactoryFactory();
    for (Condition caze : this.config.getConditions()) {
        List<OperationProcessor> processorsInCase = new ArrayList<OperationProcessor>();
        /*
       * Create {@OperationProcessor}s from configs
       */
        for (OperationConfig opConfig : caze.getOperations()) {
            try {
                processorsInCase.add(new OperationProcessor(off.getFactory(opConfig)));
            } catch (ClassNotFoundException e) {
                throw new RuntimeException(e);
            }
        }
        FilterOperation filter;
        try {
            filter = (FilterOperation) off.getFactory(caze.getCondition()).newInstance();
        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        }
        cases.add(new ImmutablePair<FilterOperation, List<OperationProcessor>>(filter, processorsInCase));
    }
    this.cases = cases;
}
Also used : Condition(com.nextdoor.bender.operation.conditional.ConditionalOperationConfig.Condition) ArrayList(java.util.ArrayList) OperationConfig(com.nextdoor.bender.operation.OperationConfig) OperationProcessor(com.nextdoor.bender.operation.OperationProcessor) FilterOperation(com.nextdoor.bender.operation.FilterOperation) ArrayList(java.util.ArrayList) List(java.util.List) ImmutablePair(org.apache.commons.lang3.tuple.ImmutablePair) Pair(org.apache.commons.lang3.tuple.Pair) OperationFactoryFactory(com.nextdoor.bender.operation.OperationFactoryFactory)

Aggregations

FilterOperation (com.nextdoor.bender.operation.FilterOperation)1 OperationConfig (com.nextdoor.bender.operation.OperationConfig)1 OperationFactoryFactory (com.nextdoor.bender.operation.OperationFactoryFactory)1 OperationProcessor (com.nextdoor.bender.operation.OperationProcessor)1 Condition (com.nextdoor.bender.operation.conditional.ConditionalOperationConfig.Condition)1 ArrayList (java.util.ArrayList)1 List (java.util.List)1 ImmutablePair (org.apache.commons.lang3.tuple.ImmutablePair)1 Pair (org.apache.commons.lang3.tuple.Pair)1