class JmsProducer extends BaseStep implements StepInterface {

  private void setOptions( JMSProducer producer ) {
    String optionValue = variables.environmentSubstitute( meta.getDisableMessageId() );
    getLogChannel().logDebug( "Disable Message ID is set to " + optionValue );
    if ( !StringUtil.isEmpty( optionValue ) ) {
      producer.setDisableMessageID( BooleanUtils.toBoolean( optionValue ) );
    }

    optionValue = variables.environmentSubstitute( meta.getDisableMessageTimestamp() );
    getLogChannel().logDebug( "Disable Message Timestamp is set to " + optionValue );
    if ( !StringUtil.isEmpty( optionValue ) ) {
      producer.setDisableMessageTimestamp( BooleanUtils.toBoolean( optionValue ) );
    }

    optionValue = variables.environmentSubstitute( meta.getDeliveryMode() );
    getLogChannel().logDebug( "Delivery Mode is set to " + optionValue );
    if ( !StringUtil.isEmpty( optionValue ) ) {
      producer.setDeliveryMode( Integer.parseInt( optionValue ) );
    }

    optionValue = variables.environmentSubstitute( meta.getPriority() );
    getLogChannel().logDebug( "Priority is set to " + optionValue );
    if ( !StringUtil.isEmpty( optionValue ) ) {
      producer.setPriority( Integer.parseInt( optionValue ) );
    }

    optionValue = variables.environmentSubstitute( meta.getTimeToLive() );
    getLogChannel().logDebug( "Time to Live is set to " + optionValue );
    if ( !StringUtil.isEmpty( optionValue ) ) {
      producer.setTimeToLive( Long.parseLong( optionValue ) );
    }

    optionValue = variables.environmentSubstitute( meta.getDeliveryDelay() );
    getLogChannel().logDebug( "Delivery Delay is set to " + optionValue );
    if ( !StringUtil.isEmpty( optionValue ) ) {
      producer.setDeliveryDelay( Long.parseLong( optionValue ) );
    }

    optionValue = variables.environmentSubstitute( meta.getJmsCorrelationId() );
    getLogChannel().logDebug( "JMS Correlation ID is set to " + optionValue );
    if ( !StringUtil.isEmpty( optionValue ) ) {
      producer.setJMSCorrelationID( optionValue );
    }

    optionValue = variables.environmentSubstitute( meta.getJmsType() );
    getLogChannel().logDebug( "JMS Type is set to " + optionValue );
    if ( !StringUtil.isEmpty( optionValue ) ) {
      producer.setJMSType( optionValue );
    }
  }

  public  JmsProducer( StepMeta stepMeta,
                      StepDataInterface stepDataInterface, int copyNr,
                      TransMeta transMeta, Trans trans );

}