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

import javax.annotation.processing.Generated;
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.component.http.LoggingHttpActivityListener;

/**
 * Generated by camel build tools - do NOT edit this file!
 */
@Generated("org.apache.camel.maven.packaging.GenerateConfigurerMojo")
@SuppressWarnings("unchecked")
public class LoggingHttpActivityListenerConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {

    @Override
    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
        org.apache.camel.component.http.LoggingHttpActivityListener target = (org.apache.camel.component.http.LoggingHttpActivityListener) obj;
        switch (ignoreCase ? name.toLowerCase() : name) {
        case "logmask":
        case "logMask": target.setLogMask(property(camelContext, java.lang.Boolean.class, value)); return true;
        case "logginglevel":
        case "loggingLevel": target.setLoggingLevel(property(camelContext, java.lang.String.class, value)); return true;
        case "maxchars":
        case "maxChars": target.setMaxChars(property(camelContext, int.class, value)); return true;
        case "multiline": target.setMultiline(property(camelContext, boolean.class, value)); return true;
        case "showbinary":
        case "showBinary": target.setShowBinary(property(camelContext, boolean.class, value)); return true;
        case "showbody":
        case "showBody": target.setShowBody(property(camelContext, boolean.class, value)); return true;
        case "showexchangeid":
        case "showExchangeId": target.setShowExchangeId(property(camelContext, boolean.class, value)); return true;
        case "showheaders":
        case "showHeaders": target.setShowHeaders(property(camelContext, boolean.class, value)); return true;
        case "showroutegroup":
        case "showRouteGroup": target.setShowRouteGroup(property(camelContext, boolean.class, value)); return true;
        case "showrouteid":
        case "showRouteId": target.setShowRouteId(property(camelContext, boolean.class, value)); return true;
        case "showstreams":
        case "showStreams": target.setShowStreams(property(camelContext, boolean.class, value)); return true;
        case "sourcelocationloggername":
        case "sourceLocationLoggerName": target.setSourceLocationLoggerName(property(camelContext, boolean.class, value)); return true;
        default: return false;
        }
    }

    @Override
    public Class<?> getOptionType(String name, boolean ignoreCase) {
        switch (ignoreCase ? name.toLowerCase() : name) {
        case "logmask":
        case "logMask": return java.lang.Boolean.class;
        case "logginglevel":
        case "loggingLevel": return java.lang.String.class;
        case "maxchars":
        case "maxChars": return int.class;
        case "multiline": return boolean.class;
        case "showbinary":
        case "showBinary": return boolean.class;
        case "showbody":
        case "showBody": return boolean.class;
        case "showexchangeid":
        case "showExchangeId": return boolean.class;
        case "showheaders":
        case "showHeaders": return boolean.class;
        case "showroutegroup":
        case "showRouteGroup": return boolean.class;
        case "showrouteid":
        case "showRouteId": return boolean.class;
        case "showstreams":
        case "showStreams": return boolean.class;
        case "sourcelocationloggername":
        case "sourceLocationLoggerName": return boolean.class;
        default: return null;
        }
    }

    @Override
    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
        org.apache.camel.component.http.LoggingHttpActivityListener target = (org.apache.camel.component.http.LoggingHttpActivityListener) obj;
        switch (ignoreCase ? name.toLowerCase() : name) {
        case "logmask":
        case "logMask": return target.getLogMask();
        case "logginglevel":
        case "loggingLevel": return target.getLoggingLevel();
        case "maxchars":
        case "maxChars": return target.getMaxChars();
        case "multiline": return target.isMultiline();
        case "showbinary":
        case "showBinary": return target.isShowBinary();
        case "showbody":
        case "showBody": return target.isShowBody();
        case "showexchangeid":
        case "showExchangeId": return target.isShowExchangeId();
        case "showheaders":
        case "showHeaders": return target.isShowHeaders();
        case "showroutegroup":
        case "showRouteGroup": return target.isShowRouteGroup();
        case "showrouteid":
        case "showRouteId": return target.isShowRouteId();
        case "showstreams":
        case "showStreams": return target.isShowStreams();
        case "sourcelocationloggername":
        case "sourceLocationLoggerName": return target.isSourceLocationLoggerName();
        default: return null;
        }
    }
}

