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

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

    @Override
    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
        XmlSignerEndpoint target = (XmlSignerEndpoint) obj;
        switch (ignoreCase ? name.toLowerCase() : name) {
        case "addkeyinforeference":
        case "addKeyInfoReference": target.getConfiguration().setAddKeyInfoReference(property(camelContext, java.lang.Boolean.class, value)); return true;
        case "baseuri":
        case "baseUri": target.getConfiguration().setBaseUri(property(camelContext, java.lang.String.class, value)); return true;
        case "canonicalizationmethod":
        case "canonicalizationMethod": target.getConfiguration().setCanonicalizationMethod(property(camelContext, javax.xml.crypto.AlgorithmMethod.class, value)); return true;
        case "clearheaders":
        case "clearHeaders": target.getConfiguration().setClearHeaders(property(camelContext, java.lang.Boolean.class, value)); return true;
        case "contentobjectid":
        case "contentObjectId": target.getConfiguration().setContentObjectId(property(camelContext, java.lang.String.class, value)); return true;
        case "contentreferencetype":
        case "contentReferenceType": target.getConfiguration().setContentReferenceType(property(camelContext, java.lang.String.class, value)); return true;
        case "contentreferenceuri":
        case "contentReferenceUri": target.getConfiguration().setContentReferenceUri(property(camelContext, java.lang.String.class, value)); return true;
        case "cryptocontextproperties":
        case "cryptoContextProperties": target.getConfiguration().setCryptoContextProperties(property(camelContext, java.util.Map.class, value)); return true;
        case "digestalgorithm":
        case "digestAlgorithm": target.getConfiguration().setDigestAlgorithm(property(camelContext, java.lang.String.class, value)); return true;
        case "disallowdoctypedecl":
        case "disallowDoctypeDecl": target.getConfiguration().setDisallowDoctypeDecl(property(camelContext, java.lang.Boolean.class, value)); return true;
        case "keyaccessor":
        case "keyAccessor": target.getConfiguration().setKeyAccessor(property(camelContext, org.apache.camel.component.xmlsecurity.api.KeyAccessor.class, value)); return true;
        case "lazystartproducer":
        case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
        case "omitxmldeclaration":
        case "omitXmlDeclaration": target.getConfiguration().setOmitXmlDeclaration(property(camelContext, java.lang.Boolean.class, value)); return true;
        case "outputxmlencoding":
        case "outputXmlEncoding": target.getConfiguration().setOutputXmlEncoding(property(camelContext, java.lang.String.class, value)); return true;
        case "parentlocalname":
        case "parentLocalName": target.getConfiguration().setParentLocalName(property(camelContext, java.lang.String.class, value)); return true;
        case "parentnamespace":
        case "parentNamespace": target.getConfiguration().setParentNamespace(property(camelContext, java.lang.String.class, value)); return true;
        case "parentxpath":
        case "parentXpath": target.getConfiguration().setParentXpath(property(camelContext, javax.xml.crypto.dsig.spec.XPathFilterParameterSpec.class, value)); return true;
        case "plaintext":
        case "plainText": target.getConfiguration().setPlainText(property(camelContext, java.lang.Boolean.class, value)); return true;
        case "plaintextencoding":
        case "plainTextEncoding": target.getConfiguration().setPlainTextEncoding(property(camelContext, java.lang.String.class, value)); return true;
        case "prefixforxmlsignaturenamespace":
        case "prefixForXmlSignatureNamespace": target.getConfiguration().setPrefixForXmlSignatureNamespace(property(camelContext, java.lang.String.class, value)); return true;
        case "properties": target.getConfiguration().setProperties(property(camelContext, org.apache.camel.component.xmlsecurity.api.XmlSignatureProperties.class, value)); return true;
        case "schemaresourceuri":
        case "schemaResourceUri": target.getConfiguration().setSchemaResourceUri(property(camelContext, java.lang.String.class, value)); return true;
        case "signaturealgorithm":
        case "signatureAlgorithm": target.getConfiguration().setSignatureAlgorithm(property(camelContext, java.lang.String.class, value)); return true;
        case "signatureid":
        case "signatureId": target.getConfiguration().setSignatureId(property(camelContext, java.lang.String.class, value)); return true;
        case "transformmethods":
        case "transformMethods": target.getConfiguration().setTransformMethods(property(camelContext, java.util.List.class, value)); return true;
        case "uridereferencer":
        case "uriDereferencer": target.getConfiguration().setUriDereferencer(property(camelContext, javax.xml.crypto.URIDereferencer.class, value)); return true;
        case "xpathstoidattributes":
        case "xpathsToIdAttributes": target.getConfiguration().setXpathsToIdAttributes(property(camelContext, java.util.List.class, value)); return true;
        default: return false;
        }
    }

    @Override
    public Class<?> getOptionType(String name, boolean ignoreCase) {
        switch (ignoreCase ? name.toLowerCase() : name) {
        case "addkeyinforeference":
        case "addKeyInfoReference": return java.lang.Boolean.class;
        case "baseuri":
        case "baseUri": return java.lang.String.class;
        case "canonicalizationmethod":
        case "canonicalizationMethod": return javax.xml.crypto.AlgorithmMethod.class;
        case "clearheaders":
        case "clearHeaders": return java.lang.Boolean.class;
        case "contentobjectid":
        case "contentObjectId": return java.lang.String.class;
        case "contentreferencetype":
        case "contentReferenceType": return java.lang.String.class;
        case "contentreferenceuri":
        case "contentReferenceUri": return java.lang.String.class;
        case "cryptocontextproperties":
        case "cryptoContextProperties": return java.util.Map.class;
        case "digestalgorithm":
        case "digestAlgorithm": return java.lang.String.class;
        case "disallowdoctypedecl":
        case "disallowDoctypeDecl": return java.lang.Boolean.class;
        case "keyaccessor":
        case "keyAccessor": return org.apache.camel.component.xmlsecurity.api.KeyAccessor.class;
        case "lazystartproducer":
        case "lazyStartProducer": return boolean.class;
        case "omitxmldeclaration":
        case "omitXmlDeclaration": return java.lang.Boolean.class;
        case "outputxmlencoding":
        case "outputXmlEncoding": return java.lang.String.class;
        case "parentlocalname":
        case "parentLocalName": return java.lang.String.class;
        case "parentnamespace":
        case "parentNamespace": return java.lang.String.class;
        case "parentxpath":
        case "parentXpath": return javax.xml.crypto.dsig.spec.XPathFilterParameterSpec.class;
        case "plaintext":
        case "plainText": return java.lang.Boolean.class;
        case "plaintextencoding":
        case "plainTextEncoding": return java.lang.String.class;
        case "prefixforxmlsignaturenamespace":
        case "prefixForXmlSignatureNamespace": return java.lang.String.class;
        case "properties": return org.apache.camel.component.xmlsecurity.api.XmlSignatureProperties.class;
        case "schemaresourceuri":
        case "schemaResourceUri": return java.lang.String.class;
        case "signaturealgorithm":
        case "signatureAlgorithm": return java.lang.String.class;
        case "signatureid":
        case "signatureId": return java.lang.String.class;
        case "transformmethods":
        case "transformMethods": return java.util.List.class;
        case "uridereferencer":
        case "uriDereferencer": return javax.xml.crypto.URIDereferencer.class;
        case "xpathstoidattributes":
        case "xpathsToIdAttributes": return java.util.List.class;
        default: return null;
        }
    }

    @Override
    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
        XmlSignerEndpoint target = (XmlSignerEndpoint) obj;
        switch (ignoreCase ? name.toLowerCase() : name) {
        case "addkeyinforeference":
        case "addKeyInfoReference": return target.getConfiguration().getAddKeyInfoReference();
        case "baseuri":
        case "baseUri": return target.getConfiguration().getBaseUri();
        case "canonicalizationmethod":
        case "canonicalizationMethod": return target.getConfiguration().getCanonicalizationMethod();
        case "clearheaders":
        case "clearHeaders": return target.getConfiguration().getClearHeaders();
        case "contentobjectid":
        case "contentObjectId": return target.getConfiguration().getContentObjectId();
        case "contentreferencetype":
        case "contentReferenceType": return target.getConfiguration().getContentReferenceType();
        case "contentreferenceuri":
        case "contentReferenceUri": return target.getConfiguration().getContentReferenceUri();
        case "cryptocontextproperties":
        case "cryptoContextProperties": return target.getConfiguration().getCryptoContextProperties();
        case "digestalgorithm":
        case "digestAlgorithm": return target.getConfiguration().getDigestAlgorithm();
        case "disallowdoctypedecl":
        case "disallowDoctypeDecl": return target.getConfiguration().getDisallowDoctypeDecl();
        case "keyaccessor":
        case "keyAccessor": return target.getConfiguration().getKeyAccessor();
        case "lazystartproducer":
        case "lazyStartProducer": return target.isLazyStartProducer();
        case "omitxmldeclaration":
        case "omitXmlDeclaration": return target.getConfiguration().getOmitXmlDeclaration();
        case "outputxmlencoding":
        case "outputXmlEncoding": return target.getConfiguration().getOutputXmlEncoding();
        case "parentlocalname":
        case "parentLocalName": return target.getConfiguration().getParentLocalName();
        case "parentnamespace":
        case "parentNamespace": return target.getConfiguration().getParentNamespace();
        case "parentxpath":
        case "parentXpath": return target.getConfiguration().getParentXpath();
        case "plaintext":
        case "plainText": return target.getConfiguration().getPlainText();
        case "plaintextencoding":
        case "plainTextEncoding": return target.getConfiguration().getPlainTextEncoding();
        case "prefixforxmlsignaturenamespace":
        case "prefixForXmlSignatureNamespace": return target.getConfiguration().getPrefixForXmlSignatureNamespace();
        case "properties": return target.getConfiguration().getProperties();
        case "schemaresourceuri":
        case "schemaResourceUri": return target.getConfiguration().getSchemaResourceUri();
        case "signaturealgorithm":
        case "signatureAlgorithm": return target.getConfiguration().getSignatureAlgorithm();
        case "signatureid":
        case "signatureId": return target.getConfiguration().getSignatureId();
        case "transformmethods":
        case "transformMethods": return target.getConfiguration().getTransformMethods();
        case "uridereferencer":
        case "uriDereferencer": return target.getConfiguration().getUriDereferencer();
        case "xpathstoidattributes":
        case "xpathsToIdAttributes": return target.getConfiguration().getXpathsToIdAttributes();
        default: return null;
        }
    }

    @Override
    public Object getCollectionValueType(Object target, String name, boolean ignoreCase) {
        switch (ignoreCase ? name.toLowerCase() : name) {
        case "cryptocontextproperties":
        case "cryptoContextProperties": return java.lang.Object.class;
        case "transformmethods":
        case "transformMethods": return javax.xml.crypto.AlgorithmMethod.class;
        case "xpathstoidattributes":
        case "xpathsToIdAttributes": return javax.xml.crypto.dsig.spec.XPathFilterParameterSpec.class;
        default: return null;
        }
    }
}

