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

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

    @Override
    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
        ScpEndpoint target = (ScpEndpoint) obj;
        switch (ignoreCase ? name.toLowerCase() : name) {
        case "allownullbody":
        case "allowNullBody": target.setAllowNullBody(property(camelContext, boolean.class, value)); return true;
        case "chmod": target.getConfiguration().setChmod(property(camelContext, java.lang.String.class, value)); return true;
        case "ciphers": target.getConfiguration().setCiphers(property(camelContext, java.lang.String.class, value)); return true;
        case "connecttimeout":
        case "connectTimeout": target.getConfiguration().setConnectTimeout(property(camelContext, int.class, value)); return true;
        case "disconnect": target.setDisconnect(property(camelContext, boolean.class, value)); return true;
        case "disconnectonbatchcomplete":
        case "disconnectOnBatchComplete": target.setDisconnectOnBatchComplete(property(camelContext, boolean.class, value)); return true;
        case "filename":
        case "fileName": target.setFileName(property(camelContext, java.lang.String.class, value)); return true;
        case "flatten": target.setFlatten(property(camelContext, boolean.class, value)); return true;
        case "jailstartingdirectory":
        case "jailStartingDirectory": target.setJailStartingDirectory(property(camelContext, boolean.class, value)); return true;
        case "knownhostsfile":
        case "knownHostsFile": target.getConfiguration().setKnownHostsFile(property(camelContext, java.lang.String.class, value)); return true;
        case "lazystartproducer":
        case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
        case "moveexistingfilestrategy":
        case "moveExistingFileStrategy": target.setMoveExistingFileStrategy(property(camelContext, org.apache.camel.component.file.strategy.FileMoveExistingStrategy.class, value)); return true;
        case "password": target.getConfiguration().setPassword(property(camelContext, java.lang.String.class, value)); return true;
        case "preferredauthentications":
        case "preferredAuthentications": target.getConfiguration().setPreferredAuthentications(property(camelContext, java.lang.String.class, value)); return true;
        case "privatekeybytes":
        case "privateKeyBytes": target.getConfiguration().setPrivateKeyBytes(property(camelContext, byte[].class, value)); return true;
        case "privatekeyfile":
        case "privateKeyFile": target.getConfiguration().setPrivateKeyFile(property(camelContext, java.lang.String.class, value)); return true;
        case "privatekeyfilepassphrase":
        case "privateKeyFilePassphrase": target.getConfiguration().setPrivateKeyFilePassphrase(property(camelContext, java.lang.String.class, value)); return true;
        case "sotimeout":
        case "soTimeout": target.getConfiguration().setSoTimeout(property(camelContext, int.class, value)); return true;
        case "stricthostkeychecking":
        case "strictHostKeyChecking": target.getConfiguration().setStrictHostKeyChecking(property(camelContext, java.lang.String.class, value)); return true;
        case "synchronous": target.setSynchronous(property(camelContext, boolean.class, value)); return true;
        case "timeout": target.getConfiguration().setTimeout(property(camelContext, int.class, value)); return true;
        case "useuserknownhostsfile":
        case "useUserKnownHostsFile": target.getConfiguration().setUseUserKnownHostsFile(property(camelContext, boolean.class, value)); return true;
        case "username": target.getConfiguration().setUsername(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 "allownullbody":
        case "allowNullBody": return boolean.class;
        case "chmod": return java.lang.String.class;
        case "ciphers": return java.lang.String.class;
        case "connecttimeout":
        case "connectTimeout": return int.class;
        case "disconnect": return boolean.class;
        case "disconnectonbatchcomplete":
        case "disconnectOnBatchComplete": return boolean.class;
        case "filename":
        case "fileName": return java.lang.String.class;
        case "flatten": return boolean.class;
        case "jailstartingdirectory":
        case "jailStartingDirectory": return boolean.class;
        case "knownhostsfile":
        case "knownHostsFile": return java.lang.String.class;
        case "lazystartproducer":
        case "lazyStartProducer": return boolean.class;
        case "moveexistingfilestrategy":
        case "moveExistingFileStrategy": return org.apache.camel.component.file.strategy.FileMoveExistingStrategy.class;
        case "password": return java.lang.String.class;
        case "preferredauthentications":
        case "preferredAuthentications": return java.lang.String.class;
        case "privatekeybytes":
        case "privateKeyBytes": return byte[].class;
        case "privatekeyfile":
        case "privateKeyFile": return java.lang.String.class;
        case "privatekeyfilepassphrase":
        case "privateKeyFilePassphrase": return java.lang.String.class;
        case "sotimeout":
        case "soTimeout": return int.class;
        case "stricthostkeychecking":
        case "strictHostKeyChecking": return java.lang.String.class;
        case "synchronous": return boolean.class;
        case "timeout": return int.class;
        case "useuserknownhostsfile":
        case "useUserKnownHostsFile": return boolean.class;
        case "username": return java.lang.String.class;
        default: return null;
        }
    }

    @Override
    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
        ScpEndpoint target = (ScpEndpoint) obj;
        switch (ignoreCase ? name.toLowerCase() : name) {
        case "allownullbody":
        case "allowNullBody": return target.isAllowNullBody();
        case "chmod": return target.getConfiguration().getChmod();
        case "ciphers": return target.getConfiguration().getCiphers();
        case "connecttimeout":
        case "connectTimeout": return target.getConfiguration().getConnectTimeout();
        case "disconnect": return target.isDisconnect();
        case "disconnectonbatchcomplete":
        case "disconnectOnBatchComplete": return target.isDisconnectOnBatchComplete();
        case "filename":
        case "fileName": return target.getFileName();
        case "flatten": return target.isFlatten();
        case "jailstartingdirectory":
        case "jailStartingDirectory": return target.isJailStartingDirectory();
        case "knownhostsfile":
        case "knownHostsFile": return target.getConfiguration().getKnownHostsFile();
        case "lazystartproducer":
        case "lazyStartProducer": return target.isLazyStartProducer();
        case "moveexistingfilestrategy":
        case "moveExistingFileStrategy": return target.getMoveExistingFileStrategy();
        case "password": return target.getConfiguration().getPassword();
        case "preferredauthentications":
        case "preferredAuthentications": return target.getConfiguration().getPreferredAuthentications();
        case "privatekeybytes":
        case "privateKeyBytes": return target.getConfiguration().getPrivateKeyBytes();
        case "privatekeyfile":
        case "privateKeyFile": return target.getConfiguration().getPrivateKeyFile();
        case "privatekeyfilepassphrase":
        case "privateKeyFilePassphrase": return target.getConfiguration().getPrivateKeyFilePassphrase();
        case "sotimeout":
        case "soTimeout": return target.getConfiguration().getSoTimeout();
        case "stricthostkeychecking":
        case "strictHostKeyChecking": return target.getConfiguration().getStrictHostKeyChecking();
        case "synchronous": return target.isSynchronous();
        case "timeout": return target.getConfiguration().getTimeout();
        case "useuserknownhostsfile":
        case "useUserKnownHostsFile": return target.getConfiguration().isUseUserKnownHostsFile();
        case "username": return target.getConfiguration().getUsername();
        default: return null;
        }
    }
}

