use of com.nextdoor.bender.operation.OperationFactoryFactory 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;
}
use of com.nextdoor.bender.operation.OperationFactoryFactory 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;
}
Aggregations