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

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

    private org.apache.camel.component.facebook.config.FacebookConfiguration getOrCreateConfiguration(FacebookComponent target) {
        if (target.getConfiguration() == null) {
            target.setConfiguration(new org.apache.camel.component.facebook.config.FacebookConfiguration());
        }
        return target.getConfiguration();
    }

    @Override
    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
        FacebookComponent target = (FacebookComponent) obj;
        switch (ignoreCase ? name.toLowerCase() : name) {
        case "autowiredenabled":
        case "autowiredEnabled": target.setAutowiredEnabled(property(camelContext, boolean.class, value)); return true;
        case "bridgeerrorhandler":
        case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
        case "clienturl":
        case "clientURL": getOrCreateConfiguration(target).setClientURL(property(camelContext, java.lang.String.class, value)); return true;
        case "clientversion":
        case "clientVersion": getOrCreateConfiguration(target).setClientVersion(property(camelContext, java.lang.String.class, value)); return true;
        case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.facebook.config.FacebookConfiguration.class, value)); return true;
        case "debugenabled":
        case "debugEnabled": getOrCreateConfiguration(target).setDebugEnabled(property(camelContext, java.lang.Boolean.class, value)); return true;
        case "gzipenabled":
        case "gzipEnabled": getOrCreateConfiguration(target).setGzipEnabled(property(camelContext, java.lang.Boolean.class, value)); return true;
        case "httpconnectiontimeout":
        case "httpConnectionTimeout": getOrCreateConfiguration(target).setHttpConnectionTimeout(property(camelContext, java.lang.Integer.class, value)); return true;
        case "httpdefaultmaxperroute":
        case "httpDefaultMaxPerRoute": getOrCreateConfiguration(target).setHttpDefaultMaxPerRoute(property(camelContext, java.lang.Integer.class, value)); return true;
        case "httpmaxtotalconnections":
        case "httpMaxTotalConnections": getOrCreateConfiguration(target).setHttpMaxTotalConnections(property(camelContext, java.lang.Integer.class, value)); return true;
        case "httpproxyhost":
        case "httpProxyHost": getOrCreateConfiguration(target).setHttpProxyHost(property(camelContext, java.lang.String.class, value)); return true;
        case "httpproxypassword":
        case "httpProxyPassword": getOrCreateConfiguration(target).setHttpProxyPassword(property(camelContext, java.lang.String.class, value)); return true;
        case "httpproxyport":
        case "httpProxyPort": getOrCreateConfiguration(target).setHttpProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
        case "httpproxyuser":
        case "httpProxyUser": getOrCreateConfiguration(target).setHttpProxyUser(property(camelContext, java.lang.String.class, value)); return true;
        case "httpreadtimeout":
        case "httpReadTimeout": getOrCreateConfiguration(target).setHttpReadTimeout(property(camelContext, java.lang.Integer.class, value)); return true;
        case "httpretrycount":
        case "httpRetryCount": getOrCreateConfiguration(target).setHttpRetryCount(property(camelContext, java.lang.Integer.class, value)); return true;
        case "httpretryintervalseconds":
        case "httpRetryIntervalSeconds": getOrCreateConfiguration(target).setHttpRetryIntervalSeconds(property(camelContext, java.lang.Integer.class, value)); return true;
        case "httpstreamingreadtimeout":
        case "httpStreamingReadTimeout": getOrCreateConfiguration(target).setHttpStreamingReadTimeout(property(camelContext, java.lang.Integer.class, value)); return true;
        case "jsonstoreenabled":
        case "jsonStoreEnabled": getOrCreateConfiguration(target).setJsonStoreEnabled(property(camelContext, java.lang.Boolean.class, value)); return true;
        case "lazystartproducer":
        case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
        case "mbeanenabled":
        case "mbeanEnabled": getOrCreateConfiguration(target).setMbeanEnabled(property(camelContext, java.lang.Boolean.class, value)); return true;
        case "oauthaccesstoken":
        case "oAuthAccessToken": getOrCreateConfiguration(target).setOAuthAccessToken(property(camelContext, java.lang.String.class, value)); return true;
        case "oauthaccesstokenurl":
        case "oAuthAccessTokenURL": getOrCreateConfiguration(target).setOAuthAccessTokenURL(property(camelContext, java.lang.String.class, value)); return true;
        case "oauthappid":
        case "oAuthAppId": getOrCreateConfiguration(target).setOAuthAppId(property(camelContext, java.lang.String.class, value)); return true;
        case "oauthappsecret":
        case "oAuthAppSecret": getOrCreateConfiguration(target).setOAuthAppSecret(property(camelContext, java.lang.String.class, value)); return true;
        case "oauthauthorizationurl":
        case "oAuthAuthorizationURL": getOrCreateConfiguration(target).setOAuthAuthorizationURL(property(camelContext, java.lang.String.class, value)); return true;
        case "oauthpermissions":
        case "oAuthPermissions": getOrCreateConfiguration(target).setOAuthPermissions(property(camelContext, java.lang.String.class, value)); return true;
        case "prettydebugenabled":
        case "prettyDebugEnabled": getOrCreateConfiguration(target).setPrettyDebugEnabled(property(camelContext, java.lang.Boolean.class, value)); return true;
        case "restbaseurl":
        case "restBaseURL": getOrCreateConfiguration(target).setRestBaseURL(property(camelContext, java.lang.String.class, value)); return true;
        case "usessl":
        case "useSSL": getOrCreateConfiguration(target).setUseSSL(property(camelContext, java.lang.Boolean.class, value)); return true;
        case "videobaseurl":
        case "videoBaseURL": getOrCreateConfiguration(target).setVideoBaseURL(property(camelContext, java.lang.String.class, value)); return true;
        default: return false;
        }
    }

    @Override
    public Class<?> getOptionType(String name, boolean ignoreCase) {
        switch (ignoreCase ? name.toLowerCase() : name) {
        case "autowiredenabled":
        case "autowiredEnabled": return boolean.class;
        case "bridgeerrorhandler":
        case "bridgeErrorHandler": return boolean.class;
        case "clienturl":
        case "clientURL": return java.lang.String.class;
        case "clientversion":
        case "clientVersion": return java.lang.String.class;
        case "configuration": return org.apache.camel.component.facebook.config.FacebookConfiguration.class;
        case "debugenabled":
        case "debugEnabled": return java.lang.Boolean.class;
        case "gzipenabled":
        case "gzipEnabled": return java.lang.Boolean.class;
        case "httpconnectiontimeout":
        case "httpConnectionTimeout": return java.lang.Integer.class;
        case "httpdefaultmaxperroute":
        case "httpDefaultMaxPerRoute": return java.lang.Integer.class;
        case "httpmaxtotalconnections":
        case "httpMaxTotalConnections": return java.lang.Integer.class;
        case "httpproxyhost":
        case "httpProxyHost": return java.lang.String.class;
        case "httpproxypassword":
        case "httpProxyPassword": return java.lang.String.class;
        case "httpproxyport":
        case "httpProxyPort": return java.lang.Integer.class;
        case "httpproxyuser":
        case "httpProxyUser": return java.lang.String.class;
        case "httpreadtimeout":
        case "httpReadTimeout": return java.lang.Integer.class;
        case "httpretrycount":
        case "httpRetryCount": return java.lang.Integer.class;
        case "httpretryintervalseconds":
        case "httpRetryIntervalSeconds": return java.lang.Integer.class;
        case "httpstreamingreadtimeout":
        case "httpStreamingReadTimeout": return java.lang.Integer.class;
        case "jsonstoreenabled":
        case "jsonStoreEnabled": return java.lang.Boolean.class;
        case "lazystartproducer":
        case "lazyStartProducer": return boolean.class;
        case "mbeanenabled":
        case "mbeanEnabled": return java.lang.Boolean.class;
        case "oauthaccesstoken":
        case "oAuthAccessToken": return java.lang.String.class;
        case "oauthaccesstokenurl":
        case "oAuthAccessTokenURL": return java.lang.String.class;
        case "oauthappid":
        case "oAuthAppId": return java.lang.String.class;
        case "oauthappsecret":
        case "oAuthAppSecret": return java.lang.String.class;
        case "oauthauthorizationurl":
        case "oAuthAuthorizationURL": return java.lang.String.class;
        case "oauthpermissions":
        case "oAuthPermissions": return java.lang.String.class;
        case "prettydebugenabled":
        case "prettyDebugEnabled": return java.lang.Boolean.class;
        case "restbaseurl":
        case "restBaseURL": return java.lang.String.class;
        case "usessl":
        case "useSSL": return java.lang.Boolean.class;
        case "videobaseurl":
        case "videoBaseURL": return java.lang.String.class;
        default: return null;
        }
    }

    @Override
    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
        FacebookComponent target = (FacebookComponent) obj;
        switch (ignoreCase ? name.toLowerCase() : name) {
        case "autowiredenabled":
        case "autowiredEnabled": return target.isAutowiredEnabled();
        case "bridgeerrorhandler":
        case "bridgeErrorHandler": return target.isBridgeErrorHandler();
        case "clienturl":
        case "clientURL": return getOrCreateConfiguration(target).getClientURL();
        case "clientversion":
        case "clientVersion": return getOrCreateConfiguration(target).getClientVersion();
        case "configuration": return target.getConfiguration();
        case "debugenabled":
        case "debugEnabled": return getOrCreateConfiguration(target).getDebugEnabled();
        case "gzipenabled":
        case "gzipEnabled": return getOrCreateConfiguration(target).getGzipEnabled();
        case "httpconnectiontimeout":
        case "httpConnectionTimeout": return getOrCreateConfiguration(target).getHttpConnectionTimeout();
        case "httpdefaultmaxperroute":
        case "httpDefaultMaxPerRoute": return getOrCreateConfiguration(target).getHttpDefaultMaxPerRoute();
        case "httpmaxtotalconnections":
        case "httpMaxTotalConnections": return getOrCreateConfiguration(target).getHttpMaxTotalConnections();
        case "httpproxyhost":
        case "httpProxyHost": return getOrCreateConfiguration(target).getHttpProxyHost();
        case "httpproxypassword":
        case "httpProxyPassword": return getOrCreateConfiguration(target).getHttpProxyPassword();
        case "httpproxyport":
        case "httpProxyPort": return getOrCreateConfiguration(target).getHttpProxyPort();
        case "httpproxyuser":
        case "httpProxyUser": return getOrCreateConfiguration(target).getHttpProxyUser();
        case "httpreadtimeout":
        case "httpReadTimeout": return getOrCreateConfiguration(target).getHttpReadTimeout();
        case "httpretrycount":
        case "httpRetryCount": return getOrCreateConfiguration(target).getHttpRetryCount();
        case "httpretryintervalseconds":
        case "httpRetryIntervalSeconds": return getOrCreateConfiguration(target).getHttpRetryIntervalSeconds();
        case "httpstreamingreadtimeout":
        case "httpStreamingReadTimeout": return getOrCreateConfiguration(target).getHttpStreamingReadTimeout();
        case "jsonstoreenabled":
        case "jsonStoreEnabled": return getOrCreateConfiguration(target).getJsonStoreEnabled();
        case "lazystartproducer":
        case "lazyStartProducer": return target.isLazyStartProducer();
        case "mbeanenabled":
        case "mbeanEnabled": return getOrCreateConfiguration(target).getMbeanEnabled();
        case "oauthaccesstoken":
        case "oAuthAccessToken": return getOrCreateConfiguration(target).getOAuthAccessToken();
        case "oauthaccesstokenurl":
        case "oAuthAccessTokenURL": return getOrCreateConfiguration(target).getOAuthAccessTokenURL();
        case "oauthappid":
        case "oAuthAppId": return getOrCreateConfiguration(target).getOAuthAppId();
        case "oauthappsecret":
        case "oAuthAppSecret": return getOrCreateConfiguration(target).getOAuthAppSecret();
        case "oauthauthorizationurl":
        case "oAuthAuthorizationURL": return getOrCreateConfiguration(target).getOAuthAuthorizationURL();
        case "oauthpermissions":
        case "oAuthPermissions": return getOrCreateConfiguration(target).getOAuthPermissions();
        case "prettydebugenabled":
        case "prettyDebugEnabled": return getOrCreateConfiguration(target).getPrettyDebugEnabled();
        case "restbaseurl":
        case "restBaseURL": return getOrCreateConfiguration(target).getRestBaseURL();
        case "usessl":
        case "useSSL": return getOrCreateConfiguration(target).getUseSSL();
        case "videobaseurl":
        case "videoBaseURL": return getOrCreateConfiguration(target).getVideoBaseURL();
        default: return null;
        }
    }
}

