Я работаю над приложением ETL, где цепочка ETL поддерживается в Spring beans. Что-то вроде:
<bean id="extractor" children="t1" />
<bean id="t1" children="t2" />
<bean id="t2" children="t3" />
<bean id="t3" children=null />
И классы выглядят так:
class Transformer {
Transformer [] children = [Transformer with secret S2]
String secret = "S1";
public doSomething() {
}
}
Class Transformer {
Transformer [] children = [Transformer with secret S3]
String secret = "S2";
public doSomething() {
}
}
Class Transformer {
Transformer [] children = null;
String secret = "S3";
public doSomething() {
}
}
А экстрактор выглядит так:
class Extractor {
public transform(Transformer n) {
n.doSomething();
for(Transformer c: n.children) {
extractor(c);
}
}
}
Трансформаторы имеют данные, связанные с базой данных и, следовательно, будут нравится издеваться над ними. Один из вариантов - дублировать цепочку Spring bean etl с ложными трансформаторами, но мне не нравится дублирование. Плюс его было бы сложно поддерживать. Мне также не нужен отдельный макет для каждого Transformer.
У меня есть доступ к реальному экземпляру Extractor, но после запуска extractor () я хотел бы имитировать doSomething () всех экземпляров Transformer.
Возможно ли это?