Friday, 15 February 2013

c# - Sequential branching / branched sequential pipeline -



c# - Sequential branching / branched sequential pipeline -

i need help pipeline of rhino etl framework.

required kind of operation chaining which,

allows branching, operates sequential (row row), returns original input row pipeline entered branch. - b / | \ - - c - \ | / - d[]

1. register / partial.register

requirement b.) covered usual register(...) , partial.register(...) initialisation, design homecoming converted row pipeline

register(new exampleproduce<classa>()); register(partial .register(new exampleconvertto<classb>()) .register(new exampleoperatewith<classb>())); // wrong row: b register(partial .register(new exampleconvertto<classc>()) .register(new exampleoperatewith<classc>())); // wrong row: c register(partial .register(new exampleconvertto<ilist<classd>>()) .register(new exampleoperatewith<ilist<classd>>())); // other row context, multiple rows of type d register(new exampleoperatewith<classa>());

2. branching operation

requirement a.) covered utilize of branchingoperation, every branch processes rows before pipeline switches , never returns original pipeline.

register(new exampleproduce<classa>()); // runs every branch rows before switching next 1 register(new branchingoperation() .add(partial.register(new exampleconvertto<classb>()) .register(new exampleoperatewith<classb>())) .add(partial.register(new exampleconvertto<classc>()) .register(new exampleoperatewith<classc>())) .add(partial.register(new exampleconvertto<ilist<classd>>()) .register(new exampleoperatewith<ilist<classd>>()))); // never reaches register(new deploy<classa>());

3. caching rows

dirty (and not working in scenario) possibility resolve issue: saving current row in column before "branch" , restoring after. depend, every operation in branch not alter column in original row stored, @ to the lowest degree in lastly branch of illustration impossible.

register(new exampleproduce<classa>()); register(new storetorow<classa>()); register(partial .register(new exampleconvertto<classb>()) .register(new exampleoperatewith<classb>())); register(new restorefromrow<classa>()); register(new storetorow<classa>()); register(partial .register(new exampleconvertto<classc>()) .register(new exampleoperatewith<classc>())); register(new restorefromrow<classa>()); register(new storetorow<classa>()); register(partial .register(new exampleconvertto<ilist<classd>>()) .register(new exampleoperatewith<ilist<classd>>())); register(new restorefromrow<classa>()); // other "row context", multiple rows of type d register(new exampleoperatewith<classa>());

is there implementation of branchingoperation (like sequentialbranchingoperation...?) meet these requirements? or other thought how resolve issue?

c# .net rhino-etl

No comments:

Post a Comment