I have two classes
MyOperator and
MyOperatorChain (the first exends
Operator and the second
OperatorChain .
When MyOperator is used standalone - everything is OK and it marks problems with types.
The problem is, when the MyOperator is placed into MyOperatorChain. I must have forgot something in my code because the operator does not report any errors and also the output port is not colored by any type until the RM process is executed.MyOperator (which extends Operator) has the following rules defined:
protected InputPort inImg = getInputPorts().createPort("MyIOObject");
protected OutputPort outExSet = getOutputPorts().createPort("ExampleSet");
public MyOperator(OperatorDescription description) {
super(description);
inImg.addPrecondition(new SimplePrecondition(inImg, new MetaData(MyIOObject.class)));
getTransformer().addRule(new GenerateNewMDRule(outExSet, ExampleSet.class));
}
MyOperatorChain (which extends OperatorChain) has the following rules defined:
private InputPort imgIn = getInputPorts().createPort("myIO");
private OutputPortExtender innerOut = new OutputPortExtender("window", getSubprocess(0).getInnerSources());
protected InputPortExtender innerIn = new InputPortExtender("example set",getSubprocess(0).getInnerSinks(),
new MetaData(ExampleSet.class), true);
private OutputPort exsOut = getOutputPorts().createPort("example set");
public FeatureExtractionOperator(OperatorDescription description) throws OperatorException {
super(description, "Executed process");
innerIn.start();
innerOut.start();
imgIn.addPrecondition(new SimplePrecondition(imgIn, new MetaData(MyIOObject.class)));
getTransformer().addRule(new OneToManyPassThroughRule(imgIn, innerOut.getManagedPorts()));
getTransformer().addGenerationRule(exsOut, ExampleSet.class);
}
Any help / suggestions would be really appreciated.

radone