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

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 JettyHttpEndpoint9Configurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {

    @Override
    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
        JettyHttpEndpoint9 target = (JettyHttpEndpoint9) obj;
        switch (ignoreCase ? name.toLowerCase() : name) {
        case "async": target.setAsync(property(camelContext, boolean.class, value)); return true;
        case "bridgeerrorhandler":
        case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
        case "chunked": target.setChunked(property(camelContext, boolean.class, value)); return true;
        case "continuationtimeout":
        case "continuationTimeout": target.setContinuationTimeout(property(camelContext, java.lang.Long.class, value)); return true;
        case "disablestreamcache":
        case "disableStreamCache": target.setDisableStreamCache(property(camelContext, boolean.class, value)); return true;
        case "eagercheckcontentavailable":
        case "eagerCheckContentAvailable": target.setEagerCheckContentAvailable(property(camelContext, boolean.class, value)); return true;
        case "enablecors":
        case "enableCORS": target.setEnableCORS(property(camelContext, boolean.class, value)); return true;
        case "enablejmx":
        case "enableJmx": target.setEnableJmx(property(camelContext, boolean.class, value)); return true;
        case "enablemultipartfilter":
        case "enableMultipartFilter": target.setEnableMultipartFilter(property(camelContext, boolean.class, value)); return true;
        case "exceptionhandler":
        case "exceptionHandler": target.setExceptionHandler(property(camelContext, org.apache.camel.spi.ExceptionHandler.class, value)); return true;
        case "exchangepattern":
        case "exchangePattern": target.setExchangePattern(property(camelContext, org.apache.camel.ExchangePattern.class, value)); return true;
        case "filterinitparameters":
        case "filterInitParameters": target.setFilterInitParameters(property(camelContext, java.util.Map.class, value)); return true;
        case "filters": target.setFilters(property(camelContext, java.util.List.class, value)); return true;
        case "handlers": target.setHandlers(property(camelContext, java.util.List.class, value)); return true;
        case "headerfilterstrategy":
        case "headerFilterStrategy": target.setHeaderFilterStrategy(property(camelContext, org.apache.camel.spi.HeaderFilterStrategy.class, value)); return true;
        case "httpbinding":
        case "httpBinding": target.setHttpBinding(property(camelContext, org.apache.camel.http.common.HttpBinding.class, value)); return true;
        case "httpmethodrestrict":
        case "httpMethodRestrict": target.setHttpMethodRestrict(property(camelContext, java.lang.String.class, value)); return true;
        case "maphttpmessagebody":
        case "mapHttpMessageBody": target.setMapHttpMessageBody(property(camelContext, boolean.class, value)); return true;
        case "maphttpmessageformurlencodedbody":
        case "mapHttpMessageFormUrlEncodedBody": target.setMapHttpMessageFormUrlEncodedBody(property(camelContext, boolean.class, value)); return true;
        case "maphttpmessageheaders":
        case "mapHttpMessageHeaders": target.setMapHttpMessageHeaders(property(camelContext, boolean.class, value)); return true;
        case "matchonuriprefix":
        case "matchOnUriPrefix": target.setMatchOnUriPrefix(property(camelContext, boolean.class, value)); return true;
        case "multipartfilter":
        case "multipartFilter": target.setMultipartFilter(property(camelContext, javax.servlet.Filter.class, value)); return true;
        case "muteexception":
        case "muteException": target.setMuteException(property(camelContext, boolean.class, value)); return true;
        case "optionsenabled":
        case "optionsEnabled": target.setOptionsEnabled(property(camelContext, boolean.class, value)); return true;
        case "responsebuffersize":
        case "responseBufferSize": target.setResponseBufferSize(property(camelContext, java.lang.Integer.class, value)); return true;
        case "senddateheader":
        case "sendDateHeader": target.setSendDateHeader(property(camelContext, boolean.class, value)); return true;
        case "sendserverversion":
        case "sendServerVersion": target.setSendServerVersion(property(camelContext, boolean.class, value)); return true;
        case "sessionsupport":
        case "sessionSupport": target.setSessionSupport(property(camelContext, boolean.class, value)); return true;
        case "sslcontextparameters":
        case "sslContextParameters": target.setSslContextParameters(property(camelContext, org.apache.camel.support.jsse.SSLContextParameters.class, value)); return true;
        case "traceenabled":
        case "traceEnabled": target.setTraceEnabled(property(camelContext, boolean.class, value)); return true;
        case "transferexception":
        case "transferException": target.setTransferException(property(camelContext, boolean.class, value)); return true;
        case "usecontinuation":
        case "useContinuation": target.setUseContinuation(property(camelContext, java.lang.Boolean.class, value)); return true;
        default: return false;
        }
    }

    @Override
    public Class<?> getOptionType(String name, boolean ignoreCase) {
        switch (ignoreCase ? name.toLowerCase() : name) {
        case "async": return boolean.class;
        case "bridgeerrorhandler":
        case "bridgeErrorHandler": return boolean.class;
        case "chunked": return boolean.class;
        case "continuationtimeout":
        case "continuationTimeout": return java.lang.Long.class;
        case "disablestreamcache":
        case "disableStreamCache": return boolean.class;
        case "eagercheckcontentavailable":
        case "eagerCheckContentAvailable": return boolean.class;
        case "enablecors":
        case "enableCORS": return boolean.class;
        case "enablejmx":
        case "enableJmx": return boolean.class;
        case "enablemultipartfilter":
        case "enableMultipartFilter": return boolean.class;
        case "exceptionhandler":
        case "exceptionHandler": return org.apache.camel.spi.ExceptionHandler.class;
        case "exchangepattern":
        case "exchangePattern": return org.apache.camel.ExchangePattern.class;
        case "filterinitparameters":
        case "filterInitParameters": return java.util.Map.class;
        case "filters": return java.util.List.class;
        case "handlers": return java.util.List.class;
        case "headerfilterstrategy":
        case "headerFilterStrategy": return org.apache.camel.spi.HeaderFilterStrategy.class;
        case "httpbinding":
        case "httpBinding": return org.apache.camel.http.common.HttpBinding.class;
        case "httpmethodrestrict":
        case "httpMethodRestrict": return java.lang.String.class;
        case "maphttpmessagebody":
        case "mapHttpMessageBody": return boolean.class;
        case "maphttpmessageformurlencodedbody":
        case "mapHttpMessageFormUrlEncodedBody": return boolean.class;
        case "maphttpmessageheaders":
        case "mapHttpMessageHeaders": return boolean.class;
        case "matchonuriprefix":
        case "matchOnUriPrefix": return boolean.class;
        case "multipartfilter":
        case "multipartFilter": return javax.servlet.Filter.class;
        case "muteexception":
        case "muteException": return boolean.class;
        case "optionsenabled":
        case "optionsEnabled": return boolean.class;
        case "responsebuffersize":
        case "responseBufferSize": return java.lang.Integer.class;
        case "senddateheader":
        case "sendDateHeader": return boolean.class;
        case "sendserverversion":
        case "sendServerVersion": return boolean.class;
        case "sessionsupport":
        case "sessionSupport": return boolean.class;
        case "sslcontextparameters":
        case "sslContextParameters": return org.apache.camel.support.jsse.SSLContextParameters.class;
        case "traceenabled":
        case "traceEnabled": return boolean.class;
        case "transferexception":
        case "transferException": return boolean.class;
        case "usecontinuation":
        case "useContinuation": return java.lang.Boolean.class;
        default: return null;
        }
    }

    @Override
    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
        JettyHttpEndpoint9 target = (JettyHttpEndpoint9) obj;
        switch (ignoreCase ? name.toLowerCase() : name) {
        case "async": return target.isAsync();
        case "bridgeerrorhandler":
        case "bridgeErrorHandler": return target.isBridgeErrorHandler();
        case "chunked": return target.isChunked();
        case "continuationtimeout":
        case "continuationTimeout": return target.getContinuationTimeout();
        case "disablestreamcache":
        case "disableStreamCache": return target.isDisableStreamCache();
        case "eagercheckcontentavailable":
        case "eagerCheckContentAvailable": return target.isEagerCheckContentAvailable();
        case "enablecors":
        case "enableCORS": return target.isEnableCORS();
        case "enablejmx":
        case "enableJmx": return target.isEnableJmx();
        case "enablemultipartfilter":
        case "enableMultipartFilter": return target.isEnableMultipartFilter();
        case "exceptionhandler":
        case "exceptionHandler": return target.getExceptionHandler();
        case "exchangepattern":
        case "exchangePattern": return target.getExchangePattern();
        case "filterinitparameters":
        case "filterInitParameters": return target.getFilterInitParameters();
        case "filters": return target.getFilters();
        case "handlers": return target.getHandlers();
        case "headerfilterstrategy":
        case "headerFilterStrategy": return target.getHeaderFilterStrategy();
        case "httpbinding":
        case "httpBinding": return target.getHttpBinding();
        case "httpmethodrestrict":
        case "httpMethodRestrict": return target.getHttpMethodRestrict();
        case "maphttpmessagebody":
        case "mapHttpMessageBody": return target.isMapHttpMessageBody();
        case "maphttpmessageformurlencodedbody":
        case "mapHttpMessageFormUrlEncodedBody": return target.isMapHttpMessageFormUrlEncodedBody();
        case "maphttpmessageheaders":
        case "mapHttpMessageHeaders": return target.isMapHttpMessageHeaders();
        case "matchonuriprefix":
        case "matchOnUriPrefix": return target.isMatchOnUriPrefix();
        case "multipartfilter":
        case "multipartFilter": return target.getMultipartFilter();
        case "muteexception":
        case "muteException": return target.isMuteException();
        case "optionsenabled":
        case "optionsEnabled": return target.isOptionsEnabled();
        case "responsebuffersize":
        case "responseBufferSize": return target.getResponseBufferSize();
        case "senddateheader":
        case "sendDateHeader": return target.isSendDateHeader();
        case "sendserverversion":
        case "sendServerVersion": return target.isSendServerVersion();
        case "sessionsupport":
        case "sessionSupport": return target.isSessionSupport();
        case "sslcontextparameters":
        case "sslContextParameters": return target.getSslContextParameters();
        case "traceenabled":
        case "traceEnabled": return target.isTraceEnabled();
        case "transferexception":
        case "transferException": return target.isTransferException();
        case "usecontinuation":
        case "useContinuation": return target.getUseContinuation();
        default: return null;
        }
    }

    @Override
    public Object getCollectionValueType(Object target, String name, boolean ignoreCase) {
        switch (ignoreCase ? name.toLowerCase() : name) {
        case "filterinitparameters":
        case "filterInitParameters": return java.lang.String.class;
        case "filters": return javax.servlet.Filter.class;
        case "handlers": return org.eclipse.jetty.server.Handler.class;
        default: return null;
        }
    }
}

