/* 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 JmsComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {

    private org.apache.camel.component.jms.JmsConfiguration getOrCreateConfiguration(JmsComponent target) {
        if (target.getConfiguration() == null) {
            target.setConfiguration(new org.apache.camel.component.jms.JmsConfiguration());
        }
        return target.getConfiguration();
    }

    @Override
    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
        JmsComponent target = (JmsComponent) obj;
        switch (ignoreCase ? name.toLowerCase() : name) {
        case "acceptmessageswhilestopping":
        case "acceptMessagesWhileStopping": getOrCreateConfiguration(target).setAcceptMessagesWhileStopping(property(camelContext, boolean.class, value)); return true;
        case "acknowledgementmodename":
        case "acknowledgementModeName": getOrCreateConfiguration(target).setAcknowledgementModeName(property(camelContext, java.lang.String.class, value)); return true;
        case "allowadditionalheaders":
        case "allowAdditionalHeaders": getOrCreateConfiguration(target).setAllowAdditionalHeaders(property(camelContext, java.lang.String.class, value)); return true;
        case "allowautowiredconnectionfactory":
        case "allowAutoWiredConnectionFactory": target.setAllowAutoWiredConnectionFactory(property(camelContext, boolean.class, value)); return true;
        case "allowautowireddestinationresolver":
        case "allowAutoWiredDestinationResolver": target.setAllowAutoWiredDestinationResolver(property(camelContext, boolean.class, value)); return true;
        case "allownullbody":
        case "allowNullBody": getOrCreateConfiguration(target).setAllowNullBody(property(camelContext, boolean.class, value)); return true;
        case "allowreplymanagerquickstop":
        case "allowReplyManagerQuickStop": getOrCreateConfiguration(target).setAllowReplyManagerQuickStop(property(camelContext, boolean.class, value)); return true;
        case "allowserializedheaders":
        case "allowSerializedHeaders": getOrCreateConfiguration(target).setAllowSerializedHeaders(property(camelContext, boolean.class, value)); return true;
        case "alwayscopymessage":
        case "alwaysCopyMessage": getOrCreateConfiguration(target).setAlwaysCopyMessage(property(camelContext, boolean.class, value)); return true;
        case "artemisstreamingenabled":
        case "artemisStreamingEnabled": getOrCreateConfiguration(target).setArtemisStreamingEnabled(property(camelContext, boolean.class, value)); return true;
        case "asyncconsumer":
        case "asyncConsumer": getOrCreateConfiguration(target).setAsyncConsumer(property(camelContext, boolean.class, value)); return true;
        case "asyncstartlistener":
        case "asyncStartListener": getOrCreateConfiguration(target).setAsyncStartListener(property(camelContext, boolean.class, value)); return true;
        case "asyncstoplistener":
        case "asyncStopListener": getOrCreateConfiguration(target).setAsyncStopListener(property(camelContext, boolean.class, value)); return true;
        case "autostartup":
        case "autoStartup": getOrCreateConfiguration(target).setAutoStartup(property(camelContext, boolean.class, value)); return true;
        case "autowiredenabled":
        case "autowiredEnabled": target.setAutowiredEnabled(property(camelContext, boolean.class, value)); return true;
        case "cachelevel":
        case "cacheLevel": getOrCreateConfiguration(target).setCacheLevel(property(camelContext, int.class, value)); return true;
        case "cachelevelname":
        case "cacheLevelName": getOrCreateConfiguration(target).setCacheLevelName(property(camelContext, java.lang.String.class, value)); return true;
        case "clientid":
        case "clientId": getOrCreateConfiguration(target).setClientId(property(camelContext, java.lang.String.class, value)); return true;
        case "concurrentconsumers":
        case "concurrentConsumers": getOrCreateConfiguration(target).setConcurrentConsumers(property(camelContext, int.class, value)); return true;
        case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.jms.JmsConfiguration.class, value)); return true;
        case "connectionfactory":
        case "connectionFactory": getOrCreateConfiguration(target).setConnectionFactory(property(camelContext, javax.jms.ConnectionFactory.class, value)); return true;
        case "consumertype":
        case "consumerType": getOrCreateConfiguration(target).setConsumerType(property(camelContext, org.apache.camel.component.jms.ConsumerType.class, value)); return true;
        case "correlationproperty":
        case "correlationProperty": getOrCreateConfiguration(target).setCorrelationProperty(property(camelContext, java.lang.String.class, value)); return true;
        case "defaulttaskexecutortype":
        case "defaultTaskExecutorType": getOrCreateConfiguration(target).setDefaultTaskExecutorType(property(camelContext, org.apache.camel.component.jms.DefaultTaskExecutorType.class, value)); return true;
        case "deliverydelay":
        case "deliveryDelay": getOrCreateConfiguration(target).setDeliveryDelay(property(camelContext, long.class, value)); return true;
        case "deliverymode":
        case "deliveryMode": getOrCreateConfiguration(target).setDeliveryMode(property(camelContext, java.lang.Integer.class, value)); return true;
        case "deliverypersistent":
        case "deliveryPersistent": getOrCreateConfiguration(target).setDeliveryPersistent(property(camelContext, boolean.class, value)); return true;
        case "destinationresolver":
        case "destinationResolver": getOrCreateConfiguration(target).setDestinationResolver(property(camelContext, org.springframework.jms.support.destination.DestinationResolver.class, value)); return true;
        case "disablereplyto":
        case "disableReplyTo": getOrCreateConfiguration(target).setDisableReplyTo(property(camelContext, boolean.class, value)); return true;
        case "disabletimetolive":
        case "disableTimeToLive": getOrCreateConfiguration(target).setDisableTimeToLive(property(camelContext, boolean.class, value)); return true;
        case "durablesubscriptionname":
        case "durableSubscriptionName": getOrCreateConfiguration(target).setDurableSubscriptionName(property(camelContext, java.lang.String.class, value)); return true;
        case "eagerloadingofproperties":
        case "eagerLoadingOfProperties": getOrCreateConfiguration(target).setEagerLoadingOfProperties(property(camelContext, boolean.class, value)); return true;
        case "eagerpoisonbody":
        case "eagerPoisonBody": getOrCreateConfiguration(target).setEagerPoisonBody(property(camelContext, java.lang.String.class, value)); return true;
        case "errorhandler":
        case "errorHandler": getOrCreateConfiguration(target).setErrorHandler(property(camelContext, org.springframework.util.ErrorHandler.class, value)); return true;
        case "errorhandlerlogstacktrace":
        case "errorHandlerLogStackTrace": getOrCreateConfiguration(target).setErrorHandlerLogStackTrace(property(camelContext, boolean.class, value)); return true;
        case "errorhandlerlogginglevel":
        case "errorHandlerLoggingLevel": getOrCreateConfiguration(target).setErrorHandlerLoggingLevel(property(camelContext, org.apache.camel.LoggingLevel.class, value)); return true;
        case "exceptionlistener":
        case "exceptionListener": getOrCreateConfiguration(target).setExceptionListener(property(camelContext, javax.jms.ExceptionListener.class, value)); return true;
        case "explicitqosenabled":
        case "explicitQosEnabled": getOrCreateConfiguration(target).setExplicitQosEnabled(property(camelContext, java.lang.Boolean.class, value)); return true;
        case "exposelistenersession":
        case "exposeListenerSession": getOrCreateConfiguration(target).setExposeListenerSession(property(camelContext, boolean.class, value)); return true;
        case "forcesendoriginalmessage":
        case "forceSendOriginalMessage": getOrCreateConfiguration(target).setForceSendOriginalMessage(property(camelContext, boolean.class, value)); return true;
        case "formatdateheaderstoiso8601":
        case "formatDateHeadersToIso8601": getOrCreateConfiguration(target).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": getOrCreateConfiguration(target).setIdleConsumerLimit(property(camelContext, int.class, value)); return true;
        case "idletaskexecutionlimit":
        case "idleTaskExecutionLimit": getOrCreateConfiguration(target).setIdleTaskExecutionLimit(property(camelContext, int.class, value)); return true;
        case "includealljmsxproperties":
        case "includeAllJMSXProperties": getOrCreateConfiguration(target).setIncludeAllJMSXProperties(property(camelContext, boolean.class, value)); return true;
        case "includesentjmsmessageid":
        case "includeSentJMSMessageID": getOrCreateConfiguration(target).setIncludeSentJMSMessageID(property(camelContext, boolean.class, value)); return true;
        case "jmskeyformatstrategy":
        case "jmsKeyFormatStrategy": getOrCreateConfiguration(target).setJmsKeyFormatStrategy(property(camelContext, org.apache.camel.component.jms.JmsKeyFormatStrategy.class, value)); return true;
        case "jmsmessagetype":
        case "jmsMessageType": getOrCreateConfiguration(target).setJmsMessageType(property(camelContext, org.apache.camel.component.jms.JmsMessageType.class, value)); return true;
        case "lazycreatetransactionmanager":
        case "lazyCreateTransactionManager": getOrCreateConfiguration(target).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": getOrCreateConfiguration(target).setMapJmsMessage(property(camelContext, boolean.class, value)); return true;
        case "maxconcurrentconsumers":
        case "maxConcurrentConsumers": getOrCreateConfiguration(target).setMaxConcurrentConsumers(property(camelContext, int.class, value)); return true;
        case "maxmessagespertask":
        case "maxMessagesPerTask": getOrCreateConfiguration(target).setMaxMessagesPerTask(property(camelContext, int.class, value)); return true;
        case "messageconverter":
        case "messageConverter": getOrCreateConfiguration(target).setMessageConverter(property(camelContext, org.springframework.jms.support.converter.MessageConverter.class, value)); return true;
        case "messagecreatedstrategy":
        case "messageCreatedStrategy": getOrCreateConfiguration(target).setMessageCreatedStrategy(property(camelContext, org.apache.camel.component.jms.MessageCreatedStrategy.class, value)); return true;
        case "messageidenabled":
        case "messageIdEnabled": getOrCreateConfiguration(target).setMessageIdEnabled(property(camelContext, boolean.class, value)); return true;
        case "messagelistenercontainerfactory":
        case "messageListenerContainerFactory": getOrCreateConfiguration(target).setMessageListenerContainerFactory(property(camelContext, org.apache.camel.component.jms.MessageListenerContainerFactory.class, value)); return true;
        case "messagetimestampenabled":
        case "messageTimestampEnabled": getOrCreateConfiguration(target).setMessageTimestampEnabled(property(camelContext, boolean.class, value)); return true;
        case "password": getOrCreateConfiguration(target).setPassword(property(camelContext, java.lang.String.class, value)); return true;
        case "preservemessageqos":
        case "preserveMessageQos": getOrCreateConfiguration(target).setPreserveMessageQos(property(camelContext, boolean.class, value)); return true;
        case "priority": getOrCreateConfiguration(target).setPriority(property(camelContext, int.class, value)); return true;
        case "pubsubnolocal":
        case "pubSubNoLocal": getOrCreateConfiguration(target).setPubSubNoLocal(property(camelContext, boolean.class, value)); return true;
        case "queuebrowsestrategy":
        case "queueBrowseStrategy": target.setQueueBrowseStrategy(property(camelContext, org.apache.camel.component.jms.QueueBrowseStrategy.class, value)); return true;
        case "receivetimeout":
        case "receiveTimeout": getOrCreateConfiguration(target).setReceiveTimeout(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
        case "recoveryinterval":
        case "recoveryInterval": getOrCreateConfiguration(target).setRecoveryInterval(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
        case "replyto":
        case "replyTo": getOrCreateConfiguration(target).setReplyTo(property(camelContext, java.lang.String.class, value)); return true;
        case "replytocachelevelname":
        case "replyToCacheLevelName": getOrCreateConfiguration(target).setReplyToCacheLevelName(property(camelContext, java.lang.String.class, value)); return true;
        case "replytoconcurrentconsumers":
        case "replyToConcurrentConsumers": getOrCreateConfiguration(target).setReplyToConcurrentConsumers(property(camelContext, int.class, value)); return true;
        case "replytodeliverypersistent":
        case "replyToDeliveryPersistent": getOrCreateConfiguration(target).setReplyToDeliveryPersistent(property(camelContext, boolean.class, value)); return true;
        case "replytodestinationselectorname":
        case "replyToDestinationSelectorName": getOrCreateConfiguration(target).setReplyToDestinationSelectorName(property(camelContext, java.lang.String.class, value)); return true;
        case "replytomaxconcurrentconsumers":
        case "replyToMaxConcurrentConsumers": getOrCreateConfiguration(target).setReplyToMaxConcurrentConsumers(property(camelContext, int.class, value)); return true;
        case "replytoontimeoutmaxconcurrentconsumers":
        case "replyToOnTimeoutMaxConcurrentConsumers": getOrCreateConfiguration(target).setReplyToOnTimeoutMaxConcurrentConsumers(property(camelContext, int.class, value)); return true;
        case "replytooverride":
        case "replyToOverride": getOrCreateConfiguration(target).setReplyToOverride(property(camelContext, java.lang.String.class, value)); return true;
        case "replytosamedestinationallowed":
        case "replyToSameDestinationAllowed": getOrCreateConfiguration(target).setReplyToSameDestinationAllowed(property(camelContext, boolean.class, value)); return true;
        case "replytotype":
        case "replyToType": getOrCreateConfiguration(target).setReplyToType(property(camelContext, org.apache.camel.component.jms.ReplyToType.class, value)); return true;
        case "requesttimeout":
        case "requestTimeout": getOrCreateConfiguration(target).setRequestTimeout(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
        case "requesttimeoutcheckerinterval":
        case "requestTimeoutCheckerInterval": getOrCreateConfiguration(target).setRequestTimeoutCheckerInterval(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
        case "selector": getOrCreateConfiguration(target).setSelector(property(camelContext, java.lang.String.class, value)); return true;
        case "streammessagetypeenabled":
        case "streamMessageTypeEnabled": getOrCreateConfiguration(target).setStreamMessageTypeEnabled(property(camelContext, boolean.class, value)); return true;
        case "subscriptiondurable":
        case "subscriptionDurable": getOrCreateConfiguration(target).setSubscriptionDurable(property(camelContext, boolean.class, value)); return true;
        case "subscriptionname":
        case "subscriptionName": getOrCreateConfiguration(target).setSubscriptionName(property(camelContext, java.lang.String.class, value)); return true;
        case "subscriptionshared":
        case "subscriptionShared": getOrCreateConfiguration(target).setSubscriptionShared(property(camelContext, boolean.class, value)); return true;
        case "taskexecutor":
        case "taskExecutor": getOrCreateConfiguration(target).setTaskExecutor(property(camelContext, org.springframework.core.task.TaskExecutor.class, value)); return true;
        case "testconnectiononstartup":
        case "testConnectionOnStartup": getOrCreateConfiguration(target).setTestConnectionOnStartup(property(camelContext, boolean.class, value)); return true;
        case "timetolive":
        case "timeToLive": getOrCreateConfiguration(target).setTimeToLive(property(camelContext, long.class, value)); return true;
        case "transacted": getOrCreateConfiguration(target).setTransacted(property(camelContext, boolean.class, value)); return true;
        case "transactedinout":
        case "transactedInOut": getOrCreateConfiguration(target).setTransactedInOut(property(camelContext, boolean.class, value)); return true;
        case "transactionmanager":
        case "transactionManager": getOrCreateConfiguration(target).setTransactionManager(property(camelContext, org.springframework.transaction.PlatformTransactionManager.class, value)); return true;
        case "transactionname":
        case "transactionName": getOrCreateConfiguration(target).setTransactionName(property(camelContext, java.lang.String.class, value)); return true;
        case "transactiontimeout":
        case "transactionTimeout": getOrCreateConfiguration(target).setTransactionTimeout(property(camelContext, int.class, value)); return true;
        case "transferexception":
        case "transferException": getOrCreateConfiguration(target).setTransferException(property(camelContext, boolean.class, value)); return true;
        case "transferexchange":
        case "transferExchange": getOrCreateConfiguration(target).setTransferExchange(property(camelContext, boolean.class, value)); return true;
        case "usemessageidascorrelationid":
        case "useMessageIDAsCorrelationID": getOrCreateConfiguration(target).setUseMessageIDAsCorrelationID(property(camelContext, boolean.class, value)); return true;
        case "username": getOrCreateConfiguration(target).setUsername(property(camelContext, java.lang.String.class, value)); return true;
        case "waitforprovisioncorrelationtobeupdatedcounter":
        case "waitForProvisionCorrelationToBeUpdatedCounter": getOrCreateConfiguration(target).setWaitForProvisionCorrelationToBeUpdatedCounter(property(camelContext, int.class, value)); return true;
        case "waitforprovisioncorrelationtobeupdatedthreadsleepingtime":
        case "waitForProvisionCorrelationToBeUpdatedThreadSleepingTime": getOrCreateConfiguration(target).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 "allowautowiredconnectionfactory":
        case "allowAutoWiredConnectionFactory": return boolean.class;
        case "allowautowireddestinationresolver":
        case "allowAutoWiredDestinationResolver": return boolean.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 "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 "autowiredenabled":
        case "autowiredEnabled": 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 "configuration": return org.apache.camel.component.jms.JmsConfiguration.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 "exceptionlistener":
        case "exceptionListener": return javax.jms.ExceptionListener.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 "queuebrowsestrategy":
        case "queueBrowseStrategy": return org.apache.camel.component.jms.QueueBrowseStrategy.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 "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) {
        JmsComponent target = (JmsComponent) obj;
        switch (ignoreCase ? name.toLowerCase() : name) {
        case "acceptmessageswhilestopping":
        case "acceptMessagesWhileStopping": return getOrCreateConfiguration(target).isAcceptMessagesWhileStopping();
        case "acknowledgementmodename":
        case "acknowledgementModeName": return getOrCreateConfiguration(target).getAcknowledgementModeName();
        case "allowadditionalheaders":
        case "allowAdditionalHeaders": return getOrCreateConfiguration(target).getAllowAdditionalHeaders();
        case "allowautowiredconnectionfactory":
        case "allowAutoWiredConnectionFactory": return target.isAllowAutoWiredConnectionFactory();
        case "allowautowireddestinationresolver":
        case "allowAutoWiredDestinationResolver": return target.isAllowAutoWiredDestinationResolver();
        case "allownullbody":
        case "allowNullBody": return getOrCreateConfiguration(target).isAllowNullBody();
        case "allowreplymanagerquickstop":
        case "allowReplyManagerQuickStop": return getOrCreateConfiguration(target).isAllowReplyManagerQuickStop();
        case "allowserializedheaders":
        case "allowSerializedHeaders": return getOrCreateConfiguration(target).isAllowSerializedHeaders();
        case "alwayscopymessage":
        case "alwaysCopyMessage": return getOrCreateConfiguration(target).isAlwaysCopyMessage();
        case "artemisstreamingenabled":
        case "artemisStreamingEnabled": return getOrCreateConfiguration(target).isArtemisStreamingEnabled();
        case "asyncconsumer":
        case "asyncConsumer": return getOrCreateConfiguration(target).isAsyncConsumer();
        case "asyncstartlistener":
        case "asyncStartListener": return getOrCreateConfiguration(target).isAsyncStartListener();
        case "asyncstoplistener":
        case "asyncStopListener": return getOrCreateConfiguration(target).isAsyncStopListener();
        case "autostartup":
        case "autoStartup": return getOrCreateConfiguration(target).isAutoStartup();
        case "autowiredenabled":
        case "autowiredEnabled": return target.isAutowiredEnabled();
        case "cachelevel":
        case "cacheLevel": return getOrCreateConfiguration(target).getCacheLevel();
        case "cachelevelname":
        case "cacheLevelName": return getOrCreateConfiguration(target).getCacheLevelName();
        case "clientid":
        case "clientId": return getOrCreateConfiguration(target).getClientId();
        case "concurrentconsumers":
        case "concurrentConsumers": return getOrCreateConfiguration(target).getConcurrentConsumers();
        case "configuration": return target.getConfiguration();
        case "connectionfactory":
        case "connectionFactory": return getOrCreateConfiguration(target).getConnectionFactory();
        case "consumertype":
        case "consumerType": return getOrCreateConfiguration(target).getConsumerType();
        case "correlationproperty":
        case "correlationProperty": return getOrCreateConfiguration(target).getCorrelationProperty();
        case "defaulttaskexecutortype":
        case "defaultTaskExecutorType": return getOrCreateConfiguration(target).getDefaultTaskExecutorType();
        case "deliverydelay":
        case "deliveryDelay": return getOrCreateConfiguration(target).getDeliveryDelay();
        case "deliverymode":
        case "deliveryMode": return getOrCreateConfiguration(target).getDeliveryMode();
        case "deliverypersistent":
        case "deliveryPersistent": return getOrCreateConfiguration(target).isDeliveryPersistent();
        case "destinationresolver":
        case "destinationResolver": return getOrCreateConfiguration(target).getDestinationResolver();
        case "disablereplyto":
        case "disableReplyTo": return getOrCreateConfiguration(target).isDisableReplyTo();
        case "disabletimetolive":
        case "disableTimeToLive": return getOrCreateConfiguration(target).isDisableTimeToLive();
        case "durablesubscriptionname":
        case "durableSubscriptionName": return getOrCreateConfiguration(target).getDurableSubscriptionName();
        case "eagerloadingofproperties":
        case "eagerLoadingOfProperties": return getOrCreateConfiguration(target).isEagerLoadingOfProperties();
        case "eagerpoisonbody":
        case "eagerPoisonBody": return getOrCreateConfiguration(target).getEagerPoisonBody();
        case "errorhandler":
        case "errorHandler": return getOrCreateConfiguration(target).getErrorHandler();
        case "errorhandlerlogstacktrace":
        case "errorHandlerLogStackTrace": return getOrCreateConfiguration(target).isErrorHandlerLogStackTrace();
        case "errorhandlerlogginglevel":
        case "errorHandlerLoggingLevel": return getOrCreateConfiguration(target).getErrorHandlerLoggingLevel();
        case "exceptionlistener":
        case "exceptionListener": return getOrCreateConfiguration(target).getExceptionListener();
        case "explicitqosenabled":
        case "explicitQosEnabled": return getOrCreateConfiguration(target).getExplicitQosEnabled();
        case "exposelistenersession":
        case "exposeListenerSession": return getOrCreateConfiguration(target).isExposeListenerSession();
        case "forcesendoriginalmessage":
        case "forceSendOriginalMessage": return getOrCreateConfiguration(target).isForceSendOriginalMessage();
        case "formatdateheaderstoiso8601":
        case "formatDateHeadersToIso8601": return getOrCreateConfiguration(target).isFormatDateHeadersToIso8601();
        case "headerfilterstrategy":
        case "headerFilterStrategy": return target.getHeaderFilterStrategy();
        case "idleconsumerlimit":
        case "idleConsumerLimit": return getOrCreateConfiguration(target).getIdleConsumerLimit();
        case "idletaskexecutionlimit":
        case "idleTaskExecutionLimit": return getOrCreateConfiguration(target).getIdleTaskExecutionLimit();
        case "includealljmsxproperties":
        case "includeAllJMSXProperties": return getOrCreateConfiguration(target).isIncludeAllJMSXProperties();
        case "includesentjmsmessageid":
        case "includeSentJMSMessageID": return getOrCreateConfiguration(target).isIncludeSentJMSMessageID();
        case "jmskeyformatstrategy":
        case "jmsKeyFormatStrategy": return getOrCreateConfiguration(target).getJmsKeyFormatStrategy();
        case "jmsmessagetype":
        case "jmsMessageType": return getOrCreateConfiguration(target).getJmsMessageType();
        case "lazycreatetransactionmanager":
        case "lazyCreateTransactionManager": return getOrCreateConfiguration(target).isLazyCreateTransactionManager();
        case "lazystartproducer":
        case "lazyStartProducer": return target.isLazyStartProducer();
        case "mapjmsmessage":
        case "mapJmsMessage": return getOrCreateConfiguration(target).isMapJmsMessage();
        case "maxconcurrentconsumers":
        case "maxConcurrentConsumers": return getOrCreateConfiguration(target).getMaxConcurrentConsumers();
        case "maxmessagespertask":
        case "maxMessagesPerTask": return getOrCreateConfiguration(target).getMaxMessagesPerTask();
        case "messageconverter":
        case "messageConverter": return getOrCreateConfiguration(target).getMessageConverter();
        case "messagecreatedstrategy":
        case "messageCreatedStrategy": return getOrCreateConfiguration(target).getMessageCreatedStrategy();
        case "messageidenabled":
        case "messageIdEnabled": return getOrCreateConfiguration(target).isMessageIdEnabled();
        case "messagelistenercontainerfactory":
        case "messageListenerContainerFactory": return getOrCreateConfiguration(target).getMessageListenerContainerFactory();
        case "messagetimestampenabled":
        case "messageTimestampEnabled": return getOrCreateConfiguration(target).isMessageTimestampEnabled();
        case "password": return getOrCreateConfiguration(target).getPassword();
        case "preservemessageqos":
        case "preserveMessageQos": return getOrCreateConfiguration(target).isPreserveMessageQos();
        case "priority": return getOrCreateConfiguration(target).getPriority();
        case "pubsubnolocal":
        case "pubSubNoLocal": return getOrCreateConfiguration(target).isPubSubNoLocal();
        case "queuebrowsestrategy":
        case "queueBrowseStrategy": return target.getQueueBrowseStrategy();
        case "receivetimeout":
        case "receiveTimeout": return getOrCreateConfiguration(target).getReceiveTimeout();
        case "recoveryinterval":
        case "recoveryInterval": return getOrCreateConfiguration(target).getRecoveryInterval();
        case "replyto":
        case "replyTo": return getOrCreateConfiguration(target).getReplyTo();
        case "replytocachelevelname":
        case "replyToCacheLevelName": return getOrCreateConfiguration(target).getReplyToCacheLevelName();
        case "replytoconcurrentconsumers":
        case "replyToConcurrentConsumers": return getOrCreateConfiguration(target).getReplyToConcurrentConsumers();
        case "replytodeliverypersistent":
        case "replyToDeliveryPersistent": return getOrCreateConfiguration(target).isReplyToDeliveryPersistent();
        case "replytodestinationselectorname":
        case "replyToDestinationSelectorName": return getOrCreateConfiguration(target).getReplyToDestinationSelectorName();
        case "replytomaxconcurrentconsumers":
        case "replyToMaxConcurrentConsumers": return getOrCreateConfiguration(target).getReplyToMaxConcurrentConsumers();
        case "replytoontimeoutmaxconcurrentconsumers":
        case "replyToOnTimeoutMaxConcurrentConsumers": return getOrCreateConfiguration(target).getReplyToOnTimeoutMaxConcurrentConsumers();
        case "replytooverride":
        case "replyToOverride": return getOrCreateConfiguration(target).getReplyToOverride();
        case "replytosamedestinationallowed":
        case "replyToSameDestinationAllowed": return getOrCreateConfiguration(target).isReplyToSameDestinationAllowed();
        case "replytotype":
        case "replyToType": return getOrCreateConfiguration(target).getReplyToType();
        case "requesttimeout":
        case "requestTimeout": return getOrCreateConfiguration(target).getRequestTimeout();
        case "requesttimeoutcheckerinterval":
        case "requestTimeoutCheckerInterval": return getOrCreateConfiguration(target).getRequestTimeoutCheckerInterval();
        case "selector": return getOrCreateConfiguration(target).getSelector();
        case "streammessagetypeenabled":
        case "streamMessageTypeEnabled": return getOrCreateConfiguration(target).isStreamMessageTypeEnabled();
        case "subscriptiondurable":
        case "subscriptionDurable": return getOrCreateConfiguration(target).isSubscriptionDurable();
        case "subscriptionname":
        case "subscriptionName": return getOrCreateConfiguration(target).getSubscriptionName();
        case "subscriptionshared":
        case "subscriptionShared": return getOrCreateConfiguration(target).isSubscriptionShared();
        case "taskexecutor":
        case "taskExecutor": return getOrCreateConfiguration(target).getTaskExecutor();
        case "testconnectiononstartup":
        case "testConnectionOnStartup": return getOrCreateConfiguration(target).isTestConnectionOnStartup();
        case "timetolive":
        case "timeToLive": return getOrCreateConfiguration(target).getTimeToLive();
        case "transacted": return getOrCreateConfiguration(target).isTransacted();
        case "transactedinout":
        case "transactedInOut": return getOrCreateConfiguration(target).isTransactedInOut();
        case "transactionmanager":
        case "transactionManager": return getOrCreateConfiguration(target).getTransactionManager();
        case "transactionname":
        case "transactionName": return getOrCreateConfiguration(target).getTransactionName();
        case "transactiontimeout":
        case "transactionTimeout": return getOrCreateConfiguration(target).getTransactionTimeout();
        case "transferexception":
        case "transferException": return getOrCreateConfiguration(target).isTransferException();
        case "transferexchange":
        case "transferExchange": return getOrCreateConfiguration(target).isTransferExchange();
        case "usemessageidascorrelationid":
        case "useMessageIDAsCorrelationID": return getOrCreateConfiguration(target).isUseMessageIDAsCorrelationID();
        case "username": return getOrCreateConfiguration(target).getUsername();
        case "waitforprovisioncorrelationtobeupdatedcounter":
        case "waitForProvisionCorrelationToBeUpdatedCounter": return getOrCreateConfiguration(target).getWaitForProvisionCorrelationToBeUpdatedCounter();
        case "waitforprovisioncorrelationtobeupdatedthreadsleepingtime":
        case "waitForProvisionCorrelationToBeUpdatedThreadSleepingTime": return getOrCreateConfiguration(target).getWaitForProvisionCorrelationToBeUpdatedThreadSleepingTime();
        default: return null;
        }
    }
}

