Search in sources :

Example 1 with OperationConfig

use of com.nextdoor.bender.operation.OperationConfig 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)

Example 2 with OperationConfig

use of com.nextdoor.bender.operation.OperationConfig in project bender by Nextdoor.

the class ForkOperationFactory method setConf.

@Override
public void setConf(AbstractConfig config) {
    this.config = (ForkOperationConfig) config;
    List<List<OperationProcessor>> processors = new ArrayList<List<OperationProcessor>>();
    OperationFactoryFactory off = new OperationFactoryFactory();
    for (Fork fork : this.config.getForks()) {
        List<OperationProcessor> processorsInFork = new ArrayList<OperationProcessor>();
        for (OperationConfig opConfig : fork.getOperations()) {
            try {
                processorsInFork.add(new OperationProcessor(off.getFactory(opConfig)));
            } catch (ClassNotFoundException e) {
                throw new RuntimeException(e);
            }
        }
        processors.add(processorsInFork);
    }
    this.processors = processors;
}
Also used : Fork(com.nextdoor.bender.operation.fork.ForkOperationConfig.Fork) ArrayList(java.util.ArrayList) OperationConfig(com.nextdoor.bender.operation.OperationConfig) List(java.util.List) ArrayList(java.util.ArrayList) OperationProcessor(com.nextdoor.bender.operation.OperationProcessor) OperationFactoryFactory(com.nextdoor.bender.operation.OperationFactoryFactory)

Aggregations

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