/* Generated by camel build tools - do NOT edit this file! */
package org.apache.camel.component.jms;

import java.util.Map;

import org.apache.camel.CamelContext;
import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
import org.apache.camel.spi.PropertyConfigurerGetter;
import org.apache.camel.spi.ConfigurerStrategy;
import org.apache.camel.spi.GeneratedPropertyConfigurer;
import org.apache.camel.util.CaseInsensitiveMap;
import org.apache.camel.support.component.PropertyConfigurerSupport;

/**
 * Generated by camel build tools - do NOT edit this file!
 */
@SuppressWarnings("unchecked")
public class JmsEndpointConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {

    @Override
    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
        JmsEndpoint target = (JmsEndpoint) obj;
        switch (ignoreCase ? name.toLowerCase() : name) {
        case "acceptmessageswhilestopping":
        case "acceptMessagesWhileStopping": target.getConfiguration().setAcceptMessagesWhileStopping(property(camelContext, boolean.class, value)); return true;
        case "acknowledgementmodename":
        case "acknowledgementModeName": target.getConfiguration().setAcknowledgementModeName(property(camelContext, java.lang.String.class, value)); return true;
        case "allowadditionalheaders":
        case "allowAdditionalHeaders": target.getConfiguration().setAllowAdditionalHeaders(property(camelContext, java.lang.String.class, value)); return true;
        case "allownullbody":
        case "allowNullBody": target.getConfiguration().setAllowNullBody(property(camelContext, boolean.class, value)); return true;
        case "allowreplymanagerquickstop":
        case "allowReplyManagerQuickStop": target.getConfiguration().setAllowReplyManagerQuickStop(property(camelContext, boolean.class, value)); return true;
        case "allowserializedheaders":
        case "allowSerializedHeaders": target.getConfiguration().setAllowSerializedHeaders(property(camelContext, boolean.class, value)); return true;
        case "alwayscopymessage":
        case "alwaysCopyMessage": target.getConfiguration().setAlwaysCopyMessage(property(camelContext, boolean.class, value)); return true;
        case "artemisconsumerpriority":
        case "artemisConsumerPriority": target.getConfiguration().setArtemisConsumerPriority(property(camelContext, int.class, value)); return true;
        case "artemisstreamingenabled":
        case "artemisStreamingEnabled": target.getConfiguration().setArtemisStreamingEnabled(property(camelContext, boolean.class, value)); return true;
        case "asyncconsumer":
        case "asyncConsumer": target.getConfiguration().setAsyncConsumer(property(camelContext, boolean.class, value)); return true;
        case "asyncstartlistener":
        case "asyncStartListener": target.getConfiguration().setAsyncStartListener(property(camelContext, boolean.class, value)); return true;
        case "asyncstoplistener":
        case "asyncStopListener": target.getConfiguration().setAsyncStopListener(property(camelContext, boolean.class, value)); return true;
        case "autostartup":
        case "autoStartup": target.getConfiguration().setAutoStartup(property(camelContext, boolean.class, value)); return true;
        case "cachelevel":
        case "cacheLevel": target.getConfiguration().setCacheLevel(property(camelContext, int.class, value)); return true;
        case "cachelevelname":
        case "cacheLevelName": target.getConfiguration().setCacheLevelName(property(camelContext, java.lang.String.class, value)); return true;
        case "clientid":
        case "clientId": target.getConfiguration().setClientId(property(camelContext, java.lang.String.class, value)); return true;
        case "concurrentconsumers":
        case "concurrentConsumers": target.getConfiguration().setConcurrentConsumers(property(camelContext, int.class, value)); return true;
        case "connectionfactory":
        case "connectionFactory": target.getConfiguration().setConnectionFactory(property(camelContext, javax.jms.ConnectionFactory.class, value)); return true;
        case "consumertype":
        case "consumerType": target.getConfiguration().setConsumerType(property(camelContext, org.apache.camel.component.jms.ConsumerType.class, value)); return true;
        case "correlationproperty":
        case "correlationProperty": target.getConfiguration().setCorrelationProperty(property(camelContext, java.lang.String.class, value)); return true;
        case "defaulttaskexecutortype":
        case "defaultTaskExecutorType": target.getConfiguration().setDefaultTaskExecutorType(property(camelContext, org.apache.camel.component.jms.DefaultTaskExecutorType.class, value)); return true;
        case "deliverydelay":
        case "deliveryDelay": target.getConfiguration().setDeliveryDelay(property(camelContext, long.class, value)); return true;
        case "deliverymode":
        case "deliveryMode": target.getConfiguration().setDeliveryMode(property(camelContext, java.lang.Integer.class, value)); return true;
        case "deliverypersistent":
        case "deliveryPersistent": target.getConfiguration().setDeliveryPersistent(property(camelContext, boolean.class, value)); return true;
        case "destinationresolver":
        case "destinationResolver": target.getConfiguration().setDestinationResolver(property(camelContext, org.springframework.jms.support.destination.DestinationResolver.class, value)); return true;
        case "disablereplyto":
        case "disableReplyTo": target.getConfiguration().setDisableReplyTo(property(camelContext, boolean.class, value)); return true;
        case "disabletimetolive":
        case "disableTimeToLive": target.getConfiguration().setDisableTimeToLive(property(camelContext, boolean.class, value)); return true;
        case "durablesubscriptionname":
        case "durableSubscriptionName": target.getConfiguration().setDurableSubscriptionName(property(camelContext, java.lang.String.class, value)); return true;
        case "eagerloadingofproperties":
        case "eagerLoadingOfProperties": target.getConfiguration().setEagerLoadingOfProperties(property(camelContext, boolean.class, value)); return true;
        case "eagerpoisonbody":
        case "eagerPoisonBody": target.getConfiguration().setEagerPoisonBody(property(camelContext, java.lang.String.class, value)); return true;
        case "errorhandler":
        case "errorHandler": target.getConfiguration().setErrorHandler(property(camelContext, org.springframework.util.ErrorHandler.class, value)); return true;
        case "errorhandlerlogstacktrace":
        case "errorHandlerLogStackTrace": target.getConfiguration().setErrorHandlerLogStackTrace(property(camelContext, boolean.class, value)); return true;
        case "errorhandlerlogginglevel":
        case "errorHandlerLoggingLevel": target.getConfiguration().setErrorHandlerLoggingLevel(property(camelContext, org.apache.camel.LoggingLevel.class, value)); return true;
        case "exceptionhandler":
        case "exceptionHandler": target.setExceptionHandler(property(camelContext, org.apache.camel.spi.ExceptionHandler.class, value)); return true;
        case "exceptionlistener":
        case "exceptionListener": target.getConfiguration().setExceptionListener(property(camelContext, javax.jms.ExceptionListener.class, value)); return true;
        case "exchangepattern":
        case "exchangePattern": target.setExchangePattern(property(camelContext, org.apache.camel.ExchangePattern.class, value)); return true;
        case "explicitqosenabled":
        case "explicitQosEnabled": target.getConfiguration().setExplicitQosEnabled(property(camelContext, java.lang.Boolean.class, value)); return true;
        case "exposelistenersession":
        case "exposeListenerSession": target.getConfiguration().setExposeListenerSession(property(camelContext, boolean.class, value)); return true;
        case "forcesendoriginalmessage":
        case "forceSendOriginalMessage": target.getConfiguration().setForceSendOriginalMessage(property(camelContext, boolean.class, value)); return true;
        case "formatdateheaderstoiso8601":
        case "formatDateHeadersToIso8601": target.getConfiguration().setFormatDateHeadersToIso8601(property(camelContext, boolean.class, value)); return true;
        case "headerfilterstrategy":
        case "headerFilterStrategy": target.setHeaderFilterStrategy(property(camelContext, org.apache.camel.spi.HeaderFilterStrategy.class, value)); return true;
        case "idleconsumerlimit":
        case "idleConsumerLimit": target.getConfiguration().setIdleConsumerLimit(property(camelContext, int.class, value)); return true;
        case "idletaskexecutionlimit":
        case "idleTaskExecutionLimit": target.getConfiguration().setIdleTaskExecutionLimit(property(camelContext, int.class, value)); return true;
        case "includealljmsxproperties":
        case "includeAllJMSXProperties": target.getConfiguration().setIncludeAllJMSXProperties(property(camelContext, boolean.class, value)); return true;
        case "includesentjmsmessageid":
        case "includeSentJMSMessageID": target.getConfiguration().setIncludeSentJMSMessageID(property(camelContext, boolean.class, value)); return true;
        case "jmskeyformatstrategy":
        case "jmsKeyFormatStrategy": target.getConfiguration().setJmsKeyFormatStrategy(property(camelContext, org.apache.camel.component.jms.JmsKeyFormatStrategy.class, value)); return true;
        case "jmsmessagetype":
        case "jmsMessageType": target.getConfiguration().setJmsMessageType(property(camelContext, org.apache.camel.component.jms.JmsMessageType.class, value)); return true;
        case "lazycreatetransactionmanager":
        case "lazyCreateTransactionManager": target.getConfiguration().setLazyCreateTransactionManager(property(camelContext, boolean.class, value)); return true;
        case "lazystartproducer":
        case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
        case "mapjmsmessage":
        case "mapJmsMessage": target.getConfiguration().setMapJmsMessage(property(camelContext, boolean.class, value)); return true;
        case "maxconcurrentconsumers":
        case "maxConcurrentConsumers": target.getConfiguration().setMaxConcurrentConsumers(property(camelContext, int.class, value)); return true;
        case "maxmessagespertask":
        case "maxMessagesPerTask": target.getConfiguration().setMaxMessagesPerTask(property(camelContext, int.class, value)); return true;
        case "messageconverter":
        case "messageConverter": target.getConfiguration().setMessageConverter(property(camelContext, org.springframework.jms.support.converter.MessageConverter.class, value)); return true;
        case "messagecreatedstrategy":
        case "messageCreatedStrategy": target.getConfiguration().setMessageCreatedStrategy(property(camelContext, org.apache.camel.component.jms.MessageCreatedStrategy.class, value)); return true;
        case "messageidenabled":
        case "messageIdEnabled": target.getConfiguration().setMessageIdEnabled(property(camelContext, boolean.class, value)); return true;
        case "messagelistenercontainerfactory":
        case "messageListenerContainerFactory": target.getConfiguration().setMessageListenerContainerFactory(property(camelContext, org.apache.camel.component.jms.MessageListenerContainerFactory.class, value)); return true;
        case "messagetimestampenabled":
        case "messageTimestampEnabled": target.getConfiguration().setMessageTimestampEnabled(property(camelContext, boolean.class, value)); return true;
        case "password": target.getConfiguration().setPassword(property(camelContext, java.lang.String.class, value)); return true;
        case "preservemessageqos":
        case "preserveMessageQos": target.getConfiguration().setPreserveMessageQos(property(camelContext, boolean.class, value)); return true;
        case "priority": target.getConfiguration().setPriority(property(camelContext, int.class, value)); return true;
        case "pubsubnolocal":
        case "pubSubNoLocal": target.getConfiguration().setPubSubNoLocal(property(camelContext, boolean.class, value)); return true;
        case "receivetimeout":
        case "receiveTimeout": target.getConfiguration().setReceiveTimeout(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
        case "recoveryinterval":
        case "recoveryInterval": target.getConfiguration().setRecoveryInterval(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
        case "replyto":
        case "replyTo": target.getConfiguration().setReplyTo(property(camelContext, java.lang.String.class, value)); return true;
        case "replytocachelevelname":
        case "replyToCacheLevelName": target.getConfiguration().setReplyToCacheLevelName(property(camelContext, java.lang.String.class, value)); return true;
        case "replytoconcurrentconsumers":
        case "replyToConcurrentConsumers": target.getConfiguration().setReplyToConcurrentConsumers(property(camelContext, int.class, value)); return true;
        case "replytodeliverypersistent":
        case "replyToDeliveryPersistent": target.getConfiguration().setReplyToDeliveryPersistent(property(camelContext, boolean.class, value)); return true;
        case "replytodestinationselectorname":
        case "replyToDestinationSelectorName": target.getConfiguration().setReplyToDestinationSelectorName(property(camelContext, java.lang.String.class, value)); return true;
        case "replytomaxconcurrentconsumers":
        case "replyToMaxConcurrentConsumers": target.getConfiguration().setReplyToMaxConcurrentConsumers(property(camelContext, int.class, value)); return true;
        case "replytoontimeoutmaxconcurrentconsumers":
        case "replyToOnTimeoutMaxConcurrentConsumers": target.getConfiguration().setReplyToOnTimeoutMaxConcurrentConsumers(property(camelContext, int.class, value)); return true;
        case "replytooverride":
        case "replyToOverride": target.getConfiguration().setReplyToOverride(property(camelContext, java.lang.String.class, value)); return true;
        case "replytosamedestinationallowed":
        case "replyToSameDestinationAllowed": target.getConfiguration().setReplyToSameDestinationAllowed(property(camelContext, boolean.class, value)); return true;
        case "replytotype":
        case "replyToType": target.getConfiguration().setReplyToType(property(camelContext, org.apache.camel.component.jms.ReplyToType.class, value)); return true;
        case "requesttimeout":
        case "requestTimeout": target.getConfiguration().setRequestTimeout(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
        case "requesttimeoutcheckerinterval":
        case "requestTimeoutCheckerInterval": target.getConfiguration().setRequestTimeoutCheckerInterval(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
        case "selector": target.getConfiguration().setSelector(property(camelContext, java.lang.String.class, value)); return true;
        case "streammessagetypeenabled":
        case "streamMessageTypeEnabled": target.getConfiguration().setStreamMessageTypeEnabled(property(camelContext, boolean.class, value)); return true;
        case "subscriptiondurable":
        case "subscriptionDurable": target.getConfiguration().setSubscriptionDurable(property(camelContext, boolean.class, value)); return true;
        case "subscriptionname":
        case "subscriptionName": target.getConfiguration().setSubscriptionName(property(camelContext, java.lang.String.class, value)); return true;
        case "subscriptionshared":
        case "subscriptionShared": target.getConfiguration().setSubscriptionShared(property(camelContext, boolean.class, value)); return true;
        case "synchronous": target.getConfiguration().setSynchronous(property(camelContext, boolean.class, value)); return true;
        case "taskexecutor":
        case "taskExecutor": target.getConfiguration().setTaskExecutor(property(camelContext, org.springframework.core.task.TaskExecutor.class, value)); return true;
        case "testconnectiononstartup":
        case "testConnectionOnStartup": target.getConfiguration().setTestConnectionOnStartup(property(camelContext, boolean.class, value)); return true;
        case "timetolive":
        case "timeToLive": target.getConfiguration().setTimeToLive(property(camelContext, long.class, value)); return true;
        case "transacted": target.getConfiguration().setTransacted(property(camelContext, boolean.class, value)); return true;
        case "transactedinout":
        case "transactedInOut": target.getConfiguration().setTransactedInOut(property(camelContext, boolean.class, value)); return true;
        case "transactionmanager":
        case "transactionManager": target.getConfiguration().setTransactionManager(property(camelContext, org.springframework.transaction.PlatformTransactionManager.class, value)); return true;
        case "transactionname":
        case "transactionName": target.getConfiguration().setTransactionName(property(camelContext, java.lang.String.class, value)); return true;
        case "transactiontimeout":
        case "transactionTimeout": target.getConfiguration().setTransactionTimeout(property(camelContext, int.class, value)); return true;
        case "transferexception":
        case "transferException": target.getConfiguration().setTransferException(property(camelContext, boolean.class, value)); return true;
        case "transferexchange":
        case "transferExchange": target.getConfiguration().setTransferExchange(property(camelContext, boolean.class, value)); return true;
        case "usemessageidascorrelationid":
        case "useMessageIDAsCorrelationID": target.getConfiguration().setUseMessageIDAsCorrelationID(property(camelContext, boolean.class, value)); return true;
        case "username": target.getConfiguration().setUsername(property(camelContext, java.lang.String.class, value)); return true;
        case "waitforprovisioncorrelationtobeupdatedcounter":
        case "waitForProvisionCorrelationToBeUpdatedCounter": target.getConfiguration().setWaitForProvisionCorrelationToBeUpdatedCounter(property(camelContext, int.class, value)); return true;
        case "waitforprovisioncorrelationtobeupdatedthreadsleepingtime":
        case "waitForProvisionCorrelationToBeUpdatedThreadSleepingTime": target.getConfiguration().setWaitForProvisionCorrelationToBeUpdatedThreadSleepingTime(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
        default: return false;
        }
    }

    @Override
    public Class<?> getOptionType(String name, boolean ignoreCase) {
        switch (ignoreCase ? name.toLowerCase() : name) {
        case "acceptmessageswhilestopping":
        case "acceptMessagesWhileStopping": return boolean.class;
        case "acknowledgementmodename":
        case "acknowledgementModeName": return java.lang.String.class;
        case "allowadditionalheaders":
        case "allowAdditionalHeaders": return java.lang.String.class;
        case "allownullbody":
        case "allowNullBody": return boolean.class;
        case "allowreplymanagerquickstop":
        case "allowReplyManagerQuickStop": return boolean.class;
        case "allowserializedheaders":
        case "allowSerializedHeaders": return boolean.class;
        case "alwayscopymessage":
        case "alwaysCopyMessage": return boolean.class;
        case "artemisconsumerpriority":
        case "artemisConsumerPriority": return int.class;
        case "artemisstreamingenabled":
        case "artemisStreamingEnabled": return boolean.class;
        case "asyncconsumer":
        case "asyncConsumer": return boolean.class;
        case "asyncstartlistener":
        case "asyncStartListener": return boolean.class;
        case "asyncstoplistener":
        case "asyncStopListener": return boolean.class;
        case "autostartup":
        case "autoStartup": return boolean.class;
        case "cachelevel":
        case "cacheLevel": return int.class;
        case "cachelevelname":
        case "cacheLevelName": return java.lang.String.class;
        case "clientid":
        case "clientId": return java.lang.String.class;
        case "concurrentconsumers":
        case "concurrentConsumers": return int.class;
        case "connectionfactory":
        case "connectionFactory": return javax.jms.ConnectionFactory.class;
        case "consumertype":
        case "consumerType": return org.apache.camel.component.jms.ConsumerType.class;
        case "correlationproperty":
        case "correlationProperty": return java.lang.String.class;
        case "defaulttaskexecutortype":
        case "defaultTaskExecutorType": return org.apache.camel.component.jms.DefaultTaskExecutorType.class;
        case "deliverydelay":
        case "deliveryDelay": return long.class;
        case "deliverymode":
        case "deliveryMode": return java.lang.Integer.class;
        case "deliverypersistent":
        case "deliveryPersistent": return boolean.class;
        case "destinationresolver":
        case "destinationResolver": return org.springframework.jms.support.destination.DestinationResolver.class;
        case "disablereplyto":
        case "disableReplyTo": return boolean.class;
        case "disabletimetolive":
        case "disableTimeToLive": return boolean.class;
        case "durablesubscriptionname":
        case "durableSubscriptionName": return java.lang.String.class;
        case "eagerloadingofproperties":
        case "eagerLoadingOfProperties": return boolean.class;
        case "eagerpoisonbody":
        case "eagerPoisonBody": return java.lang.String.class;
        case "errorhandler":
        case "errorHandler": return org.springframework.util.ErrorHandler.class;
        case "errorhandlerlogstacktrace":
        case "errorHandlerLogStackTrace": return boolean.class;
        case "errorhandlerlogginglevel":
        case "errorHandlerLoggingLevel": return org.apache.camel.LoggingLevel.class;
        case "exceptionhandler":
        case "exceptionHandler": return org.apache.camel.spi.ExceptionHandler.class;
        case "exceptionlistener":
        case "exceptionListener": return javax.jms.ExceptionListener.class;
        case "exchangepattern":
        case "exchangePattern": return org.apache.camel.ExchangePattern.class;
        case "explicitqosenabled":
        case "explicitQosEnabled": return java.lang.Boolean.class;
        case "exposelistenersession":
        case "exposeListenerSession": return boolean.class;
        case "forcesendoriginalmessage":
        case "forceSendOriginalMessage": return boolean.class;
        case "formatdateheaderstoiso8601":
        case "formatDateHeadersToIso8601": return boolean.class;
        case "headerfilterstrategy":
        case "headerFilterStrategy": return org.apache.camel.spi.HeaderFilterStrategy.class;
        case "idleconsumerlimit":
        case "idleConsumerLimit": return int.class;
        case "idletaskexecutionlimit":
        case "idleTaskExecutionLimit": return int.class;
        case "includealljmsxproperties":
        case "includeAllJMSXProperties": return boolean.class;
        case "includesentjmsmessageid":
        case "includeSentJMSMessageID": return boolean.class;
        case "jmskeyformatstrategy":
        case "jmsKeyFormatStrategy": return org.apache.camel.component.jms.JmsKeyFormatStrategy.class;
        case "jmsmessagetype":
        case "jmsMessageType": return org.apache.camel.component.jms.JmsMessageType.class;
        case "lazycreatetransactionmanager":
        case "lazyCreateTransactionManager": return boolean.class;
        case "lazystartproducer":
        case "lazyStartProducer": return boolean.class;
        case "mapjmsmessage":
        case "mapJmsMessage": return boolean.class;
        case "maxconcurrentconsumers":
        case "maxConcurrentConsumers": return int.class;
        case "maxmessagespertask":
        case "maxMessagesPerTask": return int.class;
        case "messageconverter":
        case "messageConverter": return org.springframework.jms.support.converter.MessageConverter.class;
        case "messagecreatedstrategy":
        case "messageCreatedStrategy": return org.apache.camel.component.jms.MessageCreatedStrategy.class;
        case "messageidenabled":
        case "messageIdEnabled": return boolean.class;
        case "messagelistenercontainerfactory":
        case "messageListenerContainerFactory": return org.apache.camel.component.jms.MessageListenerContainerFactory.class;
        case "messagetimestampenabled":
        case "messageTimestampEnabled": return boolean.class;
        case "password": return java.lang.String.class;
        case "preservemessageqos":
        case "preserveMessageQos": return boolean.class;
        case "priority": return int.class;
        case "pubsubnolocal":
        case "pubSubNoLocal": return boolean.class;
        case "receivetimeout":
        case "receiveTimeout": return long.class;
        case "recoveryinterval":
        case "recoveryInterval": return long.class;
        case "replyto":
        case "replyTo": return java.lang.String.class;
        case "replytocachelevelname":
        case "replyToCacheLevelName": return java.lang.String.class;
        case "replytoconcurrentconsumers":
        case "replyToConcurrentConsumers": return int.class;
        case "replytodeliverypersistent":
        case "replyToDeliveryPersistent": return boolean.class;
        case "replytodestinationselectorname":
        case "replyToDestinationSelectorName": return java.lang.String.class;
        case "replytomaxconcurrentconsumers":
        case "replyToMaxConcurrentConsumers": return int.class;
        case "replytoontimeoutmaxconcurrentconsumers":
        case "replyToOnTimeoutMaxConcurrentConsumers": return int.class;
        case "replytooverride":
        case "replyToOverride": return java.lang.String.class;
        case "replytosamedestinationallowed":
        case "replyToSameDestinationAllowed": return boolean.class;
        case "replytotype":
        case "replyToType": return org.apache.camel.component.jms.ReplyToType.class;
        case "requesttimeout":
        case "requestTimeout": return long.class;
        case "requesttimeoutcheckerinterval":
        case "requestTimeoutCheckerInterval": return long.class;
        case "selector": return java.lang.String.class;
        case "streammessagetypeenabled":
        case "streamMessageTypeEnabled": return boolean.class;
        case "subscriptiondurable":
        case "subscriptionDurable": return boolean.class;
        case "subscriptionname":
        case "subscriptionName": return java.lang.String.class;
        case "subscriptionshared":
        case "subscriptionShared": return boolean.class;
        case "synchronous": return boolean.class;
        case "taskexecutor":
        case "taskExecutor": return org.springframework.core.task.TaskExecutor.class;
        case "testconnectiononstartup":
        case "testConnectionOnStartup": return boolean.class;
        case "timetolive":
        case "timeToLive": return long.class;
        case "transacted": return boolean.class;
        case "transactedinout":
        case "transactedInOut": return boolean.class;
        case "transactionmanager":
        case "transactionManager": return org.springframework.transaction.PlatformTransactionManager.class;
        case "transactionname":
        case "transactionName": return java.lang.String.class;
        case "transactiontimeout":
        case "transactionTimeout": return int.class;
        case "transferexception":
        case "transferException": return boolean.class;
        case "transferexchange":
        case "transferExchange": return boolean.class;
        case "usemessageidascorrelationid":
        case "useMessageIDAsCorrelationID": return boolean.class;
        case "username": return java.lang.String.class;
        case "waitforprovisioncorrelationtobeupdatedcounter":
        case "waitForProvisionCorrelationToBeUpdatedCounter": return int.class;
        case "waitforprovisioncorrelationtobeupdatedthreadsleepingtime":
        case "waitForProvisionCorrelationToBeUpdatedThreadSleepingTime": return long.class;
        default: return null;
        }
    }

    @Override
    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
        JmsEndpoint target = (JmsEndpoint) obj;
        switch (ignoreCase ? name.toLowerCase() : name) {
        case "acceptmessageswhilestopping":
        case "acceptMessagesWhileStopping": return target.getConfiguration().isAcceptMessagesWhileStopping();
        case "acknowledgementmodename":
        case "acknowledgementModeName": return target.getConfiguration().getAcknowledgementModeName();
        case "allowadditionalheaders":
        case "allowAdditionalHeaders": return target.getConfiguration().getAllowAdditionalHeaders();
        case "allownullbody":
        case "allowNullBody": return target.getConfiguration().isAllowNullBody();
        case "allowreplymanagerquickstop":
        case "allowReplyManagerQuickStop": return target.getConfiguration().isAllowReplyManagerQuickStop();
        case "allowserializedheaders":
        case "allowSerializedHeaders": return target.getConfiguration().isAllowSerializedHeaders();
        case "alwayscopymessage":
        case "alwaysCopyMessage": return target.getConfiguration().isAlwaysCopyMessage();
        case "artemisconsumerpriority":
        case "artemisConsumerPriority": return target.getConfiguration().getArtemisConsumerPriority();
        case "artemisstreamingenabled":
        case "artemisStreamingEnabled": return target.getConfiguration().isArtemisStreamingEnabled();
        case "asyncconsumer":
        case "asyncConsumer": return target.getConfiguration().isAsyncConsumer();
        case "asyncstartlistener":
        case "asyncStartListener": return target.getConfiguration().isAsyncStartListener();
        case "asyncstoplistener":
        case "asyncStopListener": return target.getConfiguration().isAsyncStopListener();
        case "autostartup":
        case "autoStartup": return target.getConfiguration().isAutoStartup();
        case "cachelevel":
        case "cacheLevel": return target.getConfiguration().getCacheLevel();
        case "cachelevelname":
        case "cacheLevelName": return target.getConfiguration().getCacheLevelName();
        case "clientid":
        case "clientId": return target.getConfiguration().getClientId();
        case "concurrentconsumers":
        case "concurrentConsumers": return target.getConfiguration().getConcurrentConsumers();
        case "connectionfactory":
        case "connectionFactory": return target.getConfiguration().getConnectionFactory();
        case "consumertype":
        case "consumerType": return target.getConfiguration().getConsumerType();
        case "correlationproperty":
        case "correlationProperty": return target.getConfiguration().getCorrelationProperty();
        case "defaulttaskexecutortype":
        case "defaultTaskExecutorType": return target.getConfiguration().getDefaultTaskExecutorType();
        case "deliverydelay":
        case "deliveryDelay": return target.getConfiguration().getDeliveryDelay();
        case "deliverymode":
        case "deliveryMode": return target.getConfiguration().getDeliveryMode();
        case "deliverypersistent":
        case "deliveryPersistent": return target.getConfiguration().isDeliveryPersistent();
        case "destinationresolver":
        case "destinationResolver": return target.getConfiguration().getDestinationResolver();
        case "disablereplyto":
        case "disableReplyTo": return target.getConfiguration().isDisableReplyTo();
        case "disabletimetolive":
        case "disableTimeToLive": return target.getConfiguration().isDisableTimeToLive();
        case "durablesubscriptionname":
        case "durableSubscriptionName": return target.getConfiguration().getDurableSubscriptionName();
        case "eagerloadingofproperties":
        case "eagerLoadingOfProperties": return target.getConfiguration().isEagerLoadingOfProperties();
        case "eagerpoisonbody":
        case "eagerPoisonBody": return target.getConfiguration().getEagerPoisonBody();
        case "errorhandler":
        case "errorHandler": return target.getConfiguration().getErrorHandler();
        case "errorhandlerlogstacktrace":
        case "errorHandlerLogStackTrace": return target.getConfiguration().isErrorHandlerLogStackTrace();
        case "errorhandlerlogginglevel":
        case "errorHandlerLoggingLevel": return target.getConfiguration().getErrorHandlerLoggingLevel();
        case "exceptionhandler":
        case "exceptionHandler": return target.getExceptionHandler();
        case "exceptionlistener":
        case "exceptionListener": return target.getConfiguration().getExceptionListener();
        case "exchangepattern":
        case "exchangePattern": return target.getExchangePattern();
        case "explicitqosenabled":
        case "explicitQosEnabled": return target.getConfiguration().getExplicitQosEnabled();
        case "exposelistenersession":
        case "exposeListenerSession": return target.getConfiguration().isExposeListenerSession();
        case "forcesendoriginalmessage":
        case "forceSendOriginalMessage": return target.getConfiguration().isForceSendOriginalMessage();
        case "formatdateheaderstoiso8601":
        case "formatDateHeadersToIso8601": return target.getConfiguration().isFormatDateHeadersToIso8601();
        case "headerfilterstrategy":
        case "headerFilterStrategy": return target.getHeaderFilterStrategy();
        case "idleconsumerlimit":
        case "idleConsumerLimit": return target.getConfiguration().getIdleConsumerLimit();
        case "idletaskexecutionlimit":
        case "idleTaskExecutionLimit": return target.getConfiguration().getIdleTaskExecutionLimit();
        case "includealljmsxproperties":
        case "includeAllJMSXProperties": return target.getConfiguration().isIncludeAllJMSXProperties();
        case "includesentjmsmessageid":
        case "includeSentJMSMessageID": return target.getConfiguration().isIncludeSentJMSMessageID();
        case "jmskeyformatstrategy":
        case "jmsKeyFormatStrategy": return target.getConfiguration().getJmsKeyFormatStrategy();
        case "jmsmessagetype":
        case "jmsMessageType": return target.getConfiguration().getJmsMessageType();
        case "lazycreatetransactionmanager":
        case "lazyCreateTransactionManager": return target.getConfiguration().isLazyCreateTransactionManager();
        case "lazystartproducer":
        case "lazyStartProducer": return target.isLazyStartProducer();
        case "mapjmsmessage":
        case "mapJmsMessage": return target.getConfiguration().isMapJmsMessage();
        case "maxconcurrentconsumers":
        case "maxConcurrentConsumers": return target.getConfiguration().getMaxConcurrentConsumers();
        case "maxmessagespertask":
        case "maxMessagesPerTask": return target.getConfiguration().getMaxMessagesPerTask();
        case "messageconverter":
        case "messageConverter": return target.getConfiguration().getMessageConverter();
        case "messagecreatedstrategy":
        case "messageCreatedStrategy": return target.getConfiguration().getMessageCreatedStrategy();
        case "messageidenabled":
        case "messageIdEnabled": return target.getConfiguration().isMessageIdEnabled();
        case "messagelistenercontainerfactory":
        case "messageListenerContainerFactory": return target.getConfiguration().getMessageListenerContainerFactory();
        case "messagetimestampenabled":
        case "messageTimestampEnabled": return target.getConfiguration().isMessageTimestampEnabled();
        case "password": return target.getConfiguration().getPassword();
        case "preservemessageqos":
        case "preserveMessageQos": return target.getConfiguration().isPreserveMessageQos();
        case "priority": return target.getConfiguration().getPriority();
        case "pubsubnolocal":
        case "pubSubNoLocal": return target.getConfiguration().isPubSubNoLocal();
        case "receivetimeout":
        case "receiveTimeout": return target.getConfiguration().getReceiveTimeout();
        case "recoveryinterval":
        case "recoveryInterval": return target.getConfiguration().getRecoveryInterval();
        case "replyto":
        case "replyTo": return target.getConfiguration().getReplyTo();
        case "replytocachelevelname":
        case "replyToCacheLevelName": return target.getConfiguration().getReplyToCacheLevelName();
        case "replytoconcurrentconsumers":
        case "replyToConcurrentConsumers": return target.getConfiguration().getReplyToConcurrentConsumers();
        case "replytodeliverypersistent":
        case "replyToDeliveryPersistent": return target.getConfiguration().isReplyToDeliveryPersistent();
        case "replytodestinationselectorname":
        case "replyToDestinationSelectorName": return target.getConfiguration().getReplyToDestinationSelectorName();
        case "replytomaxconcurrentconsumers":
        case "replyToMaxConcurrentConsumers": return target.getConfiguration().getReplyToMaxConcurrentConsumers();
        case "replytoontimeoutmaxconcurrentconsumers":
        case "replyToOnTimeoutMaxConcurrentConsumers": return target.getConfiguration().getReplyToOnTimeoutMaxConcurrentConsumers();
        case "replytooverride":
        case "replyToOverride": return target.getConfiguration().getReplyToOverride();
        case "replytosamedestinationallowed":
        case "replyToSameDestinationAllowed": return target.getConfiguration().isReplyToSameDestinationAllowed();
        case "replytotype":
        case "replyToType": return target.getConfiguration().getReplyToType();
        case "requesttimeout":
        case "requestTimeout": return target.getConfiguration().getRequestTimeout();
        case "requesttimeoutcheckerinterval":
        case "requestTimeoutCheckerInterval": return target.getConfiguration().getRequestTimeoutCheckerInterval();
        case "selector": return target.getConfiguration().getSelector();
        case "streammessagetypeenabled":
        case "streamMessageTypeEnabled": return target.getConfiguration().isStreamMessageTypeEnabled();
        case "subscriptiondurable":
        case "subscriptionDurable": return target.getConfiguration().isSubscriptionDurable();
        case "subscriptionname":
        case "subscriptionName": return target.getConfiguration().getSubscriptionName();
        case "subscriptionshared":
        case "subscriptionShared": return target.getConfiguration().isSubscriptionShared();
        case "synchronous": return target.getConfiguration().isSynchronous();
        case "taskexecutor":
        case "taskExecutor": return target.getConfiguration().getTaskExecutor();
        case "testconnectiononstartup":
        case "testConnectionOnStartup": return target.getConfiguration().isTestConnectionOnStartup();
        case "timetolive":
        case "timeToLive": return target.getConfiguration().getTimeToLive();
        case "transacted": return target.getConfiguration().isTransacted();
        case "transactedinout":
        case "transactedInOut": return target.getConfiguration().isTransactedInOut();
        case "transactionmanager":
        case "transactionManager": return target.getConfiguration().getTransactionManager();
        case "transactionname":
        case "transactionName": return target.getConfiguration().getTransactionName();
        case "transactiontimeout":
        case "transactionTimeout": return target.getConfiguration().getTransactionTimeout();
        case "transferexception":
        case "transferException": return target.getConfiguration().isTransferException();
        case "transferexchange":
        case "transferExchange": return target.getConfiguration().isTransferExchange();
        case "usemessageidascorrelationid":
        case "useMessageIDAsCorrelationID": return target.getConfiguration().isUseMessageIDAsCorrelationID();
        case "username": return target.getConfiguration().getUsername();
        case "waitforprovisioncorrelationtobeupdatedcounter":
        case "waitForProvisionCorrelationToBeUpdatedCounter": return target.getConfiguration().getWaitForProvisionCorrelationToBeUpdatedCounter();
        case "waitforprovisioncorrelationtobeupdatedthreadsleepingtime":
        case "waitForProvisionCorrelationToBeUpdatedThreadSleepingTime": return target.getConfiguration().getWaitForProvisionCorrelationToBeUpdatedThreadSleepingTime();
        default: return null;
        }
    }
}

