// Path: src/main/java/com/instaclick/pentaho/plugin/amqp/AMQPPluginMeta.java
// public static class Binding
// {
//     private final String target;
//     private final String routing;
//     private final String target_type;
// 
//     Binding(final String target, final String target_type, final String routing)
//     {
//         this.target      = target;
//         this.routing     = routing;
//         this.target_type = target_type;
//     }
// 
//     public String getTarget()
//     {
//         return target;
//     }
// 
//     public String getRouting()
//     {
//         return routing;
//     }
//     public String getTargetType()
//     {
//         return target_type;
//     }
// }
// 
// Path: src/main/java/com/instaclick/pentaho/plugin/amqp/Messages.java
// public static String getString(String key)
// {
//     return BaseMessages.getString(PKG, key);
// }


import com.instaclick.pentaho.plugin.amqp.AMQPPluginMeta.Binding;
import java.util.ArrayList;
import java.util.List;
import org.pentaho.di.core.exception.KettleException;
import org.pentaho.di.core.row.ValueMetaInterface;
import org.pentaho.di.trans.step.StepInjectionMetaEntry;
import org.pentaho.di.trans.step.StepInjectionUtil;
import org.pentaho.di.trans.step.StepMetaInjectionEntryInterface;
import org.pentaho.di.trans.step.StepMetaInjectionInterface;
import org.pentaho.di.core.Const;
import static com.instaclick.pentaho.plugin.amqp.Messages.getString;
        list.add( StepInjectionUtil.getEntry( Entry.DELIVERYTAG, meta.getDeliveryTagField() ) );
        list.add( StepInjectionUtil.getEntry( Entry.TARGET, meta.getTarget() ) );
        list.add( StepInjectionUtil.getEntry( Entry.ROUTING, meta.getRouting() ) );
        list.add( StepInjectionUtil.getEntry( Entry.LIMIT, meta.getLimitString() ) );
        list.add( StepInjectionUtil.getEntry( Entry.TRANSACTIONAL, meta.isTransactional() ) );
        list.add( StepInjectionUtil.getEntry( Entry.AMQP_USERNAME, meta.getUsername() ) );
        list.add( StepInjectionUtil.getEntry( Entry.AMQP_PASSWORD, meta.getPassword() ) );
        list.add( StepInjectionUtil.getEntry( Entry.AMQP_HOST, meta.getHost() ) );
        list.add( StepInjectionUtil.getEntry( Entry.AMQP_PORT, meta.getPort() ) );
        list.add( StepInjectionUtil.getEntry( Entry.AMQP_VHOST, meta.getVhost() ) );
        list.add( StepInjectionUtil.getEntry( Entry.DURABLE, meta.isDurable() ) );
        list.add( StepInjectionUtil.getEntry( Entry.AUTODEL, meta.isAutodel() ) );
        list.add( StepInjectionUtil.getEntry( Entry.REQUEUE, meta.isRequeue() ) );
        list.add( StepInjectionUtil.getEntry( Entry.EXCHTYPE, meta.getExchtype() ) );
        list.add( StepInjectionUtil.getEntry( Entry.EXCLUSIVE, meta.isExclusive() ) );
        list.add( StepInjectionUtil.getEntry( Entry.WAITINGCONSUMER, meta.isWaitingConsumer() ) );
        list.add( StepInjectionUtil.getEntry( Entry.WAITTIMEOUT, meta.getWaitTimeoutString() ) );
        list.add( StepInjectionUtil.getEntry( Entry.PREFETCHCOUNT, meta.getPrefetchCountString() ) );
        list.add( StepInjectionUtil.getEntry( Entry.DECLARE, meta.isDeclare() ) );

        list.add( StepInjectionUtil.getEntry( Entry.ACKSTEPNAME, meta.getAckStepName() ) );
        list.add( StepInjectionUtil.getEntry( Entry.ACKSTEPDELIVERYTAG, meta.getAckStepDeliveryTagField() ) );
        list.add( StepInjectionUtil.getEntry( Entry.REJECTSTEPNAME, meta.getRejectStepName() ) );
        list.add( StepInjectionUtil.getEntry( Entry.REJECTSTEPDELIVERYTAG, meta.getRejectStepDeliveryTagField() ) );

        StepInjectionMetaEntry fieldsEntry = StepInjectionUtil.getEntry( Entry.BINDINGS );
        list.add( fieldsEntry );
        for ( int i = 0; i < meta.getBindings().size(); i++ ) {
            StepInjectionMetaEntry fieldEntry = StepInjectionUtil.getEntry( Entry.BINDING_ROW );
            List<StepInjectionMetaEntry> details = fieldEntry.getDetails();
// Path: src/main/java/com/instaclick/pentaho/plugin/amqp/AMQPPluginMeta.java
// public static class Binding
// {
//     private final String target;
//     private final String routing;
//     private final String target_type;
// 
//     Binding(final String target, final String target_type, final String routing)
//     {
//         this.target      = target;
//         this.routing     = routing;
//         this.target_type = target_type;
//     }
// 
//     public String getTarget()
//     {
//         return target;
//     }
// 
//     public String getRouting()
//     {
//         return routing;
//     }
//     public String getTargetType()
//     {
//         return target_type;
//     }
// }
// 
// Path: src/main/java/com/instaclick/pentaho/plugin/amqp/Messages.java
// public static String getString(String key)
// {
//     return BaseMessages.getString(PKG, key);
// }


// Path: src/main/java/com/instaclick/pentaho/plugin/amqp/AMQPPluginMetaInjection.java
import com.instaclick.pentaho.plugin.amqp.AMQPPluginMeta.Binding;
import java.util.ArrayList;
import java.util.List;
import org.pentaho.di.core.exception.KettleException;
import org.pentaho.di.core.row.ValueMetaInterface;
import org.pentaho.di.trans.step.StepInjectionMetaEntry;
import org.pentaho.di.trans.step.StepInjectionUtil;
import org.pentaho.di.trans.step.StepMetaInjectionEntryInterface;
import org.pentaho.di.trans.step.StepMetaInjectionInterface;
import org.pentaho.di.core.Const;
import static com.instaclick.pentaho.plugin.amqp.Messages.getString;

        list.add( StepInjectionUtil.getEntry( Entry.DELIVERYTAG, meta.getDeliveryTagField() ) );
        list.add( StepInjectionUtil.getEntry( Entry.TARGET, meta.getTarget() ) );
        list.add( StepInjectionUtil.getEntry( Entry.ROUTING, meta.getRouting() ) );
        list.add( StepInjectionUtil.getEntry( Entry.LIMIT, meta.getLimitString() ) );
        list.add( StepInjectionUtil.getEntry( Entry.TRANSACTIONAL, meta.isTransactional() ) );
        list.add( StepInjectionUtil.getEntry( Entry.AMQP_USERNAME, meta.getUsername() ) );
        list.add( StepInjectionUtil.getEntry( Entry.AMQP_PASSWORD, meta.getPassword() ) );
        list.add( StepInjectionUtil.getEntry( Entry.AMQP_HOST, meta.getHost() ) );
        list.add( StepInjectionUtil.getEntry( Entry.AMQP_PORT, meta.getPort() ) );
        list.add( StepInjectionUtil.getEntry( Entry.AMQP_VHOST, meta.getVhost() ) );
        list.add( StepInjectionUtil.getEntry( Entry.DURABLE, meta.isDurable() ) );
        list.add( StepInjectionUtil.getEntry( Entry.AUTODEL, meta.isAutodel() ) );
        list.add( StepInjectionUtil.getEntry( Entry.REQUEUE, meta.isRequeue() ) );
        list.add( StepInjectionUtil.getEntry( Entry.EXCHTYPE, meta.getExchtype() ) );
        list.add( StepInjectionUtil.getEntry( Entry.EXCLUSIVE, meta.isExclusive() ) );
        list.add( StepInjectionUtil.getEntry( Entry.WAITINGCONSUMER, meta.isWaitingConsumer() ) );
        list.add( StepInjectionUtil.getEntry( Entry.WAITTIMEOUT, meta.getWaitTimeoutString() ) );
        list.add( StepInjectionUtil.getEntry( Entry.PREFETCHCOUNT, meta.getPrefetchCountString() ) );
        list.add( StepInjectionUtil.getEntry( Entry.DECLARE, meta.isDeclare() ) );

        list.add( StepInjectionUtil.getEntry( Entry.ACKSTEPNAME, meta.getAckStepName() ) );
        list.add( StepInjectionUtil.getEntry( Entry.ACKSTEPDELIVERYTAG, meta.getAckStepDeliveryTagField() ) );
        list.add( StepInjectionUtil.getEntry( Entry.REJECTSTEPNAME, meta.getRejectStepName() ) );
        list.add( StepInjectionUtil.getEntry( Entry.REJECTSTEPDELIVERYTAG, meta.getRejectStepDeliveryTagField() ) );

        StepInjectionMetaEntry fieldsEntry = StepInjectionUtil.getEntry( Entry.BINDINGS );
        list.add( fieldsEntry );
        for ( int i = 0; i < meta.getBindings().size(); i++ ) {
            StepInjectionMetaEntry fieldEntry = StepInjectionUtil.getEntry( Entry.BINDING_ROW );
            List<StepInjectionMetaEntry> details = fieldEntry.getDetails();
            final Binding binding = meta.getBindings().get(i);