connecting userdefined node to different input terminals of different nodes in IIB

package com.iceman.iib;

import com.ibm.broker.config.appdev.Terminal;
import com.ibm.etools.mft.conversion.esb.extensionpoint.AbstractMediationPrimitiveConverter;
import com.ibm.etools.mft.conversion.esb.extensionpoint.Nodes;
import com.ibm.etools.mft.conversion.esb.model.mfc.AbstractProperty;
import com.ibm.etools.mft.conversion.esb.model.mfc.Property;
import com.ibm.xtq.bcel.generic.RETURN;
import com.ibm.broker.config.appdev.nodes.JavaComputeNode;

public class JavacomputeNode extends AbstractMediationPrimitiveConverter {

public String getConvertedTo() {

       // Here you need to specify node name
return "JavaCompute node";
}

@Override
public String getType() {

       // Here you need to specify WESB primitive name

return "CustomMediation";
}

@Override
public Nodes convert(ConverterContext converterContext) throws Exception {
Nodes nodes = createNodes(converterContext);
String nodeName = getProposedIIBNodeNameFromSourcePrimitive(converterContext);

 
//Below code used to create nodes
JavaComputeNode node = (JavaComputeNode) createNode(converterContext.targetFlow, nodeName, ROLE_MAIN, JavaComputeNode.class, nodes);


return nodes;
}

@Override
public Terminal getInputTerminal(String sourceTerminalName, Nodes nodes) {

// Retrieve the node and map to its input terminal. For example,
JavaComputeNode jcn = (JavaComputeNode) nodes.getNode(ROLE_MAIN);
return jcn.INPUT_TERMINAL_IN;

}

@Override
public Terminal getOutputTerminal(String sourceTerminalName, Nodes nodes) {

// Retrieve the node and map to its input terminal.
             

JavaComputeNode jcn = (JavaComputeNode) nodes.getNode(ROLE_MAIN);
               //Binding  current node to the corresponding nodes based on terminals

if ("Out".equals(sourceTerminalName))
{
return jcn.OUTPUT_TERMINAL_OUT;
}
else if ("Failure".equals(sourceTerminalName))
{
return jcn.OUTPUT_TERMINAL_FAILURE;
}
else
return jcn.OUTPUT_TERMINAL_ALTERNATE;

}

String getPropertyValue( ConverterContext converterContext, String name, String defaultValue ) {
String result = defaultValue;
AbstractProperty ap = getPropertyOfSourcePrimitive(converterContext, name);
if( ap != null && ap instanceof Property ) {
Property pr = (Property)ap;
String val = pr.getValue();
if( val != null ) result = val;
}
return result;
}
}

No comments:

Post a Comment