/**
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.apache.camel.component.xmlsecurity.springboot;

import java.util.List;
import java.util.Map;
import javax.annotation.Generated;
import javax.xml.crypto.AlgorithmMethod;
import javax.xml.crypto.KeySelector;
import javax.xml.crypto.URIDereferencer;
import javax.xml.crypto.dsig.spec.XPathFilterParameterSpec;
import org.apache.camel.component.xmlsecurity.api.KeyAccessor;
import org.apache.camel.component.xmlsecurity.api.ValidationFailedHandler;
import org.apache.camel.component.xmlsecurity.api.XmlSignature2Message;
import org.apache.camel.component.xmlsecurity.api.XmlSignatureChecker;
import org.apache.camel.component.xmlsecurity.api.XmlSignatureProperties;
import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * Used to sign and verify exchanges using the XML signature specification.
 * 
 * Generated by camel-package-maven-plugin - do not edit this file!
 */
@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
@ConfigurationProperties(prefix = "camel.component.xmlsecurity")
public class XmlSignatureComponentConfiguration
        extends
            ComponentConfigurationPropertiesCommon {

    /**
     * Whether to enable auto configuration of the xmlsecurity component. This
     * is enabled by default.
     */
    private Boolean enabled;
    /**
     * To use a shared XmlSignerConfiguration configuration to use as base for
     * configuring endpoints.
     */
    private XmlSignerConfigurationNestedConfiguration signerConfiguration;
    /**
     * To use a shared XmlVerifierConfiguration configuration to use as base for
     * configuring endpoints.
     */
    private XmlVerifierConfigurationNestedConfiguration verifierConfiguration;
    /**
     * Whether the component should resolve property placeholders on itself when
     * starting. Only properties which are of String type can use property
     * placeholders.
     */
    private Boolean resolvePropertyPlaceholders = true;

    public XmlSignerConfigurationNestedConfiguration getSignerConfiguration() {
        return signerConfiguration;
    }

    public void setSignerConfiguration(
            XmlSignerConfigurationNestedConfiguration signerConfiguration) {
        this.signerConfiguration = signerConfiguration;
    }

    public XmlVerifierConfigurationNestedConfiguration getVerifierConfiguration() {
        return verifierConfiguration;
    }

    public void setVerifierConfiguration(
            XmlVerifierConfigurationNestedConfiguration verifierConfiguration) {
        this.verifierConfiguration = verifierConfiguration;
    }

    public Boolean getResolvePropertyPlaceholders() {
        return resolvePropertyPlaceholders;
    }

    public void setResolvePropertyPlaceholders(
            Boolean resolvePropertyPlaceholders) {
        this.resolvePropertyPlaceholders = resolvePropertyPlaceholders;
    }

    public static class XmlSignerConfigurationNestedConfiguration {
        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.xmlsecurity.processor.XmlSignerConfiguration.class;
        /**
         * For the signing process, a private key is necessary. You specify a
         * key accessor bean which provides this private key. The key accessor
         * bean must implement the KeyAccessor interface. The package
         * org.apache.camel.component.xmlsecurity.api contains the default
         * implementation class DefaultKeyAccessor which reads the private key
         * from a Java keystore.
         */
        private KeyAccessor keyAccessor;
        /**
         * Canonicalization method used to canonicalize the SignedInfo element
         * before the digest is calculated. You can use the helper methods
         * XmlSignatureHelper.getCanonicalizationMethod(String algorithm) or
         * getCanonicalizationMethod(String algorithm, List
         * inclusiveNamespacePrefixes) to create a canonicalization method.
         */
        private AlgorithmMethod canonicalizationMethod;
        /**
         * Transforms which are executed on the message body before the digest
         * is calculated. By default, C14n is added and in the case of enveloped
         * signature (see option parentLocalName) also
         * http://www.w3.org/2000/09/xmldsig#enveloped-signature is added at
         * position 0 of the list. Use methods in XmlSignatureHelper to create
         * the transform methods.
         */
        private List transformMethods;
        /**
         * Signature algorithm. Default value is
         * http://www.w3.org/2000/09/xmldsig#rsa-sha1.
         */
        private String signatureAlgorithm = "http://www.w3.org/2000/09/xmldsig#rsa-sha1";
        /**
         * Digest algorithm URI. Optional parameter. This digest algorithm is
         * used for calculating the digest of the input message. If this digest
         * algorithm is not specified then the digest algorithm is calculated
         * from the signature algorithm. Example:
         * http://www.w3.org/2001/04/xmlenc#sha256
         */
        private String digestAlgorithm;
        /**
         * In order to protect the KeyInfo element from tampering you can add a
         * reference to the signed info element so that it is protected via the
         * signature value. The default value is true. Only relevant when a
         * KeyInfo is returned by KeyAccessor. and KeyInfo#getId() is not null.
         */
        private Boolean addKeyInfoReference = true;
        /**
         * Namespace prefix for the XML signature namespace
         * http://www.w3.org/2000/09/xmldsig#. Default value is ds. If null or
         * an empty value is set then no prefix is used for the XML signature
         * namespace. See best practice
         * http://www.w3.org/TR/xmldsig-bestpractices/#signing-xml-
         * without-namespaces
         */
        private String prefixForXmlSignatureNamespace = "ds";
        /**
         * Local name of the parent element to which the XML signature element
         * will be added. Only relevant for enveloped XML signature.
         * Alternatively you can also use
         * setParentXpath(XPathFilterParameterSpec). Default value is null. The
         * value must be null for enveloping and detached XML signature. This
         * parameter or the parameter setParentXpath(XPathFilterParameterSpec)
         * for enveloped signature and the parameter
         * setXpathsToIdAttributes(List) for detached signature must not be set
         * in the same configuration. If the parameters parentXpath and
         * parentLocalName are specified in the same configuration then an
         * exception is thrown.
         */
        private String parentLocalName;
        /**
         * Namespace of the parent element to which the XML signature element
         * will be added.
         */
        private String parentNamespace;
        /**
         * Sets the content object Id attribute value. By default a UUID is
         * generated. If you set the null value, then a new UUID will be
         * generated. Only used in the enveloping case.
         */
        private String contentObjectId;
        /**
         * Sets the signature Id. If this parameter is not set (null value) then
         * a unique ID is generated for the signature ID (default). If this
         * parameter is set to (empty string) then no Id attribute is created in
         * the signature element.
         */
        private String signatureId;
        /**
         * Reference URI for the content to be signed. Only used in the
         * enveloped case. If the reference URI contains an ID attribute value,
         * then the resource schema URI ( setSchemaResourceUri(String)) must
         * also be set because the schema validator will then find out which
         * attributes are ID attributes. Will be ignored in the enveloping or
         * detached case.
         */
        private String contentReferenceUri;
        /**
         * Type of the content reference. The default value is null. This value
         * can be overwritten by the header
         * XmlSignatureConstants#HEADER_CONTENT_REFERENCE_TYPE.
         */
        private String contentReferenceType;
        /**
         * Indicator whether the message body contains plain text. The default
         * value is false, indicating that the message body contains XML. The
         * value can be overwritten by the header
         * XmlSignatureConstants#HEADER_MESSAGE_IS_PLAIN_TEXT.
         */
        private Boolean plainText = false;
        /**
         * Encoding of the plain text. Only relevant if the message body is
         * plain text (see parameter plainText. Default value is UTF-8.
         */
        private String plainTextEncoding = "UTF-8";
        /**
         * For adding additional References and Objects to the XML signature
         * which contain additional properties, you can provide a bean which
         * implements the XmlSignatureProperties interface.
         */
        private XmlSignatureProperties properties;
        private String keyAccessorName;
        private String canonicalizationMethodName;
        private String transformMethodsName;
        private String propertiesName;
        /**
         * Define the elements which are signed in the detached case via XPATH
         * expressions to ID attributes (attributes of type ID). For each
         * element found via the XPATH expression a detached signature is
         * created whose reference URI contains the corresponding attribute
         * value (preceded by '#'). The signature becomes the last sibling of
         * the signed element. Elements with deeper hierarchy level are signed
         * first. You can also set the XPATH list dynamically via the header
         * XmlSignatureConstants#HEADER_XPATHS_TO_ID_ATTRIBUTES. The parameter
         * setParentLocalName(String) or
         * setParentXpath(XPathFilterParameterSpec) for enveloped signature and
         * this parameter for detached signature must not be set in the same
         * configuration.
         */
        private List xpathsToIdAttributes;
        /**
         * Sets the XPath to find the parent node in the enveloped case. Either
         * you specify the parent node via this method or the local name and
         * namespace of the parent with the methods setParentLocalName(String)
         * and setParentNamespace(String). Default value is null. The value must
         * be null for enveloping and detached XML signature. If the parameters
         * parentXpath and parentLocalName are specified in the same
         * configuration then an exception is thrown.
         */
        private XPathFilterParameterSpec parentXpath;
        /**
         * If you want to restrict the remote access via reference URIs, you can
         * set an own dereferencer. Optional parameter. If not set the provider
         * default dereferencer is used which can resolve URI fragments, HTTP,
         * file and XPpointer URIs. Attention: The implementation is provider
         * dependent!
         */
        private URIDereferencer uriDereferencer;
        /**
         * You can set a base URI which is used in the URI dereferencing.
         * Relative URIs are then concatenated with the base URI.
         */
        private String baseUri;
        /**
         * Sets the crypto context properties. See link
         * XMLCryptoContext#setProperty(String, Object). Possible properties are
         * defined in XMLSignContext an XMLValidateContext (see Supported
         * Properties). The following properties are set by default to the value
         * Boolean#TRUE for the XML validation. If you want to switch these
         * features off you must set the property value to Boolean#FALSE.
         * org.jcp.xml.dsig.validateManifests
         * javax.xml.crypto.dsig.cacheReference
         */
        private Map cryptoContextProperties;
        /**
         * Disallows that the incoming XML document contains DTD DOCTYPE
         * declaration. The default value is Boolean#TRUE.
         */
        private Boolean disallowDoctypeDecl = true;
        /**
         * Indicator whether the XML declaration in the outgoing message body
         * should be omitted. Default value is false. Can be overwritten by the
         * header XmlSignatureConstants#HEADER_OMIT_XML_DECLARATION.
         */
        private Boolean omitXmlDeclaration = false;
        /**
         * Determines if the XML signature specific headers be cleared after
         * signing and verification. Defaults to true.
         */
        private Boolean clearHeaders = true;
        /**
         * Classpath to the XML Schema. Must be specified in the detached XML
         * Signature case for determining the ID attributes, might be set in the
         * enveloped and enveloping case. If set, then the XML document is
         * validated with the specified XML schema. The schema resource URI can
         * be overwritten by the header
         * XmlSignatureConstants#HEADER_SCHEMA_RESOURCE_URI.
         */
        private String schemaResourceUri;
        /**
         * The character encoding of the resulting signed XML document. If null
         * then the encoding of the original XML document is used.
         */
        private String outputXmlEncoding;

        public KeyAccessor getKeyAccessor() {
            return keyAccessor;
        }

        public void setKeyAccessor(KeyAccessor keyAccessor) {
            this.keyAccessor = keyAccessor;
        }

        public AlgorithmMethod getCanonicalizationMethod() {
            return canonicalizationMethod;
        }

        public void setCanonicalizationMethod(
                AlgorithmMethod canonicalizationMethod) {
            this.canonicalizationMethod = canonicalizationMethod;
        }

        public List getTransformMethods() {
            return transformMethods;
        }

        public void setTransformMethods(List transformMethods) {
            this.transformMethods = transformMethods;
        }

        public String getSignatureAlgorithm() {
            return signatureAlgorithm;
        }

        public void setSignatureAlgorithm(String signatureAlgorithm) {
            this.signatureAlgorithm = signatureAlgorithm;
        }

        public String getDigestAlgorithm() {
            return digestAlgorithm;
        }

        public void setDigestAlgorithm(String digestAlgorithm) {
            this.digestAlgorithm = digestAlgorithm;
        }

        public Boolean getAddKeyInfoReference() {
            return addKeyInfoReference;
        }

        public void setAddKeyInfoReference(Boolean addKeyInfoReference) {
            this.addKeyInfoReference = addKeyInfoReference;
        }

        public String getPrefixForXmlSignatureNamespace() {
            return prefixForXmlSignatureNamespace;
        }

        public void setPrefixForXmlSignatureNamespace(
                String prefixForXmlSignatureNamespace) {
            this.prefixForXmlSignatureNamespace = prefixForXmlSignatureNamespace;
        }

        public String getParentLocalName() {
            return parentLocalName;
        }

        public void setParentLocalName(String parentLocalName) {
            this.parentLocalName = parentLocalName;
        }

        public String getParentNamespace() {
            return parentNamespace;
        }

        public void setParentNamespace(String parentNamespace) {
            this.parentNamespace = parentNamespace;
        }

        public String getContentObjectId() {
            return contentObjectId;
        }

        public void setContentObjectId(String contentObjectId) {
            this.contentObjectId = contentObjectId;
        }

        public String getSignatureId() {
            return signatureId;
        }

        public void setSignatureId(String signatureId) {
            this.signatureId = signatureId;
        }

        public String getContentReferenceUri() {
            return contentReferenceUri;
        }

        public void setContentReferenceUri(String contentReferenceUri) {
            this.contentReferenceUri = contentReferenceUri;
        }

        public String getContentReferenceType() {
            return contentReferenceType;
        }

        public void setContentReferenceType(String contentReferenceType) {
            this.contentReferenceType = contentReferenceType;
        }

        public Boolean getPlainText() {
            return plainText;
        }

        public void setPlainText(Boolean plainText) {
            this.plainText = plainText;
        }

        public String getPlainTextEncoding() {
            return plainTextEncoding;
        }

        public void setPlainTextEncoding(String plainTextEncoding) {
            this.plainTextEncoding = plainTextEncoding;
        }

        public XmlSignatureProperties getProperties() {
            return properties;
        }

        public void setProperties(XmlSignatureProperties properties) {
            this.properties = properties;
        }

        public String getKeyAccessorName() {
            return keyAccessorName;
        }

        public void setKeyAccessorName(String keyAccessorName) {
            this.keyAccessorName = keyAccessorName;
        }

        public String getCanonicalizationMethodName() {
            return canonicalizationMethodName;
        }

        public void setCanonicalizationMethodName(
                String canonicalizationMethodName) {
            this.canonicalizationMethodName = canonicalizationMethodName;
        }

        public String getTransformMethodsName() {
            return transformMethodsName;
        }

        public void setTransformMethodsName(String transformMethodsName) {
            this.transformMethodsName = transformMethodsName;
        }

        public String getPropertiesName() {
            return propertiesName;
        }

        public void setPropertiesName(String propertiesName) {
            this.propertiesName = propertiesName;
        }

        public List getXpathsToIdAttributes() {
            return xpathsToIdAttributes;
        }

        public void setXpathsToIdAttributes(List xpathsToIdAttributes) {
            this.xpathsToIdAttributes = xpathsToIdAttributes;
        }

        public XPathFilterParameterSpec getParentXpath() {
            return parentXpath;
        }

        public void setParentXpath(XPathFilterParameterSpec parentXpath) {
            this.parentXpath = parentXpath;
        }

        public URIDereferencer getUriDereferencer() {
            return uriDereferencer;
        }

        public void setUriDereferencer(URIDereferencer uriDereferencer) {
            this.uriDereferencer = uriDereferencer;
        }

        public String getBaseUri() {
            return baseUri;
        }

        public void setBaseUri(String baseUri) {
            this.baseUri = baseUri;
        }

        public Map getCryptoContextProperties() {
            return cryptoContextProperties;
        }

        public void setCryptoContextProperties(Map cryptoContextProperties) {
            this.cryptoContextProperties = cryptoContextProperties;
        }

        public Boolean getDisallowDoctypeDecl() {
            return disallowDoctypeDecl;
        }

        public void setDisallowDoctypeDecl(Boolean disallowDoctypeDecl) {
            this.disallowDoctypeDecl = disallowDoctypeDecl;
        }

        public Boolean getOmitXmlDeclaration() {
            return omitXmlDeclaration;
        }

        public void setOmitXmlDeclaration(Boolean omitXmlDeclaration) {
            this.omitXmlDeclaration = omitXmlDeclaration;
        }

        public Boolean getClearHeaders() {
            return clearHeaders;
        }

        public void setClearHeaders(Boolean clearHeaders) {
            this.clearHeaders = clearHeaders;
        }

        public String getSchemaResourceUri() {
            return schemaResourceUri;
        }

        public void setSchemaResourceUri(String schemaResourceUri) {
            this.schemaResourceUri = schemaResourceUri;
        }

        public String getOutputXmlEncoding() {
            return outputXmlEncoding;
        }

        public void setOutputXmlEncoding(String outputXmlEncoding) {
            this.outputXmlEncoding = outputXmlEncoding;
        }
    }

    public static class XmlVerifierConfigurationNestedConfiguration {
        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.xmlsecurity.processor.XmlVerifierConfiguration.class;
        /**
         * Provides the key for validating the XML signature.
         */
        private KeySelector keySelector;
        /**
         * This interface allows the application to check the XML signature
         * before the validation is executed. This step is recommended in
         * http://www.w3.org/TR/xmldsig-bestpractices/#check-what-is-signed
         */
        private XmlSignatureChecker xmlSignatureChecker;
        /**
         * Bean which maps the XML signature to the output-message after the
         * validation. How this mapping should be done can be configured by the
         * options outputNodeSearchType, outputNodeSearch, and
         * removeSignatureElements. The default implementation offers three
         * possibilities which are related to the three output node search types
         * Default, ElementName, and XPath. The default implementation
         * determines a node which is then serialized and set to the body of the
         * output message If the search type is ElementName then the output node
         * (which must be in this case an element) is determined by the local
         * name and namespace defined in the search value (see option
         * outputNodeSearch). If the search type is XPath then the output node
         * is determined by the XPath specified in the search value (in this
         * case the output node can be of type Element, TextNode or Document).
         * If the output node search type is Default then the following rules
         * apply: In the enveloped XML signature case (there is a reference with
         * URI= and transform
         * http://www.w3.org/2000/09/xmldsig#enveloped-signature), the incoming
         * XML document without the Signature element is set to the output
         * message body. In the non-enveloped XML signature case, the message
         * body is determined from a referenced Object; this is explained in
         * more detail in chapter Output Node Determination in Enveloping XML
         * Signature Case.
         */
        private XmlSignature2Message xmlSignature2Message;
        /**
         * Handles the different validation failed situations. The default
         * implementation throws specific exceptions for the different
         * situations (All exceptions have the package name
         * org.apache.camel.component.xmlsecurity.api and are a sub-class of
         * XmlSignatureInvalidException. If the signature value validation
         * fails, a XmlSignatureInvalidValueException is thrown. If a reference
         * validation fails, a XmlSignatureInvalidContentHashException is
         * thrown. For more detailed information, see the JavaDoc.
         */
        private ValidationFailedHandler validationFailedHandler;
        /**
         * Sets the output node search value for determining the node from the
         * XML signature document which shall be set to the output message body.
         * The class of the value depends on the type of the output node search.
         * The output node search is forwarded to XmlSignature2Message.
         */
        private Object outputNodeSearch;
        /**
         * Determines the search type for determining the output node which is
         * serialized into the output message bodyF. See
         * setOutputNodeSearch(Object). The supported default search types you
         * can find in DefaultXmlSignature2Message.
         */
        private String outputNodeSearchType = "Default";
        /**
         * Indicator whether the XML signature elements (elements with local
         * name Signature and namesapce http://www.w3.org/2000/09/xmldsig#)
         * shall be removed from the document set to the output message.
         * Normally, this is only necessary, if the XML signature is enveloped.
         * The default value is Boolean#FALSE. This parameter is forwarded to
         * XmlSignature2Message. This indicator has no effect if the output node
         * search is of type
         * DefaultXmlSignature2Message#OUTPUT_NODE_SEARCH_TYPE_DEFAULT.F
         */
        private Boolean removeSignatureElements = false;
        /**
         * Enables secure validation. If true then secure validation is enabled.
         */
        private Boolean secureValidation = true;
        /**
         * Name of handler to
         * 
         * @param validationFailedHandlerName
         */
        private String validationFailedHandlerName;
        /**
         * If you want to restrict the remote access via reference URIs, you can
         * set an own dereferencer. Optional parameter. If not set the provider
         * default dereferencer is used which can resolve URI fragments, HTTP,
         * file and XPpointer URIs. Attention: The implementation is provider
         * dependent!
         */
        private URIDereferencer uriDereferencer;
        /**
         * You can set a base URI which is used in the URI dereferencing.
         * Relative URIs are then concatenated with the base URI.
         */
        private String baseUri;
        /**
         * Sets the crypto context properties. See link
         * XMLCryptoContext#setProperty(String, Object). Possible properties are
         * defined in XMLSignContext an XMLValidateContext (see Supported
         * Properties). The following properties are set by default to the value
         * Boolean#TRUE for the XML validation. If you want to switch these
         * features off you must set the property value to Boolean#FALSE.
         * org.jcp.xml.dsig.validateManifests
         * javax.xml.crypto.dsig.cacheReference
         */
        private Map cryptoContextProperties;
        /**
         * Disallows that the incoming XML document contains DTD DOCTYPE
         * declaration. The default value is Boolean#TRUE.
         */
        private Boolean disallowDoctypeDecl = true;
        /**
         * Indicator whether the XML declaration in the outgoing message body
         * should be omitted. Default value is false. Can be overwritten by the
         * header XmlSignatureConstants#HEADER_OMIT_XML_DECLARATION.
         */
        private Boolean omitXmlDeclaration = false;
        /**
         * Determines if the XML signature specific headers be cleared after
         * signing and verification. Defaults to true.
         */
        private Boolean clearHeaders = true;
        /**
         * Classpath to the XML Schema. Must be specified in the detached XML
         * Signature case for determining the ID attributes, might be set in the
         * enveloped and enveloping case. If set, then the XML document is
         * validated with the specified XML schema. The schema resource URI can
         * be overwritten by the header
         * XmlSignatureConstants#HEADER_SCHEMA_RESOURCE_URI.
         */
        private String schemaResourceUri;
        /**
         * The character encoding of the resulting signed XML document. If null
         * then the encoding of the original XML document is used.
         */
        private String outputXmlEncoding;

        public KeySelector getKeySelector() {
            return keySelector;
        }

        public void setKeySelector(KeySelector keySelector) {
            this.keySelector = keySelector;
        }

        public XmlSignatureChecker getXmlSignatureChecker() {
            return xmlSignatureChecker;
        }

        public void setXmlSignatureChecker(
                XmlSignatureChecker xmlSignatureChecker) {
            this.xmlSignatureChecker = xmlSignatureChecker;
        }

        public XmlSignature2Message getXmlSignature2Message() {
            return xmlSignature2Message;
        }

        public void setXmlSignature2Message(
                XmlSignature2Message xmlSignature2Message) {
            this.xmlSignature2Message = xmlSignature2Message;
        }

        public ValidationFailedHandler getValidationFailedHandler() {
            return validationFailedHandler;
        }

        public void setValidationFailedHandler(
                ValidationFailedHandler validationFailedHandler) {
            this.validationFailedHandler = validationFailedHandler;
        }

        public Object getOutputNodeSearch() {
            return outputNodeSearch;
        }

        public void setOutputNodeSearch(Object outputNodeSearch) {
            this.outputNodeSearch = outputNodeSearch;
        }

        public String getOutputNodeSearchType() {
            return outputNodeSearchType;
        }

        public void setOutputNodeSearchType(String outputNodeSearchType) {
            this.outputNodeSearchType = outputNodeSearchType;
        }

        public Boolean getRemoveSignatureElements() {
            return removeSignatureElements;
        }

        public void setRemoveSignatureElements(Boolean removeSignatureElements) {
            this.removeSignatureElements = removeSignatureElements;
        }

        public Boolean getSecureValidation() {
            return secureValidation;
        }

        public void setSecureValidation(Boolean secureValidation) {
            this.secureValidation = secureValidation;
        }

        public String getValidationFailedHandlerName() {
            return validationFailedHandlerName;
        }

        public void setValidationFailedHandlerName(
                String validationFailedHandlerName) {
            this.validationFailedHandlerName = validationFailedHandlerName;
        }

        public URIDereferencer getUriDereferencer() {
            return uriDereferencer;
        }

        public void setUriDereferencer(URIDereferencer uriDereferencer) {
            this.uriDereferencer = uriDereferencer;
        }

        public String getBaseUri() {
            return baseUri;
        }

        public void setBaseUri(String baseUri) {
            this.baseUri = baseUri;
        }

        public Map getCryptoContextProperties() {
            return cryptoContextProperties;
        }

        public void setCryptoContextProperties(Map cryptoContextProperties) {
            this.cryptoContextProperties = cryptoContextProperties;
        }

        public Boolean getDisallowDoctypeDecl() {
            return disallowDoctypeDecl;
        }

        public void setDisallowDoctypeDecl(Boolean disallowDoctypeDecl) {
            this.disallowDoctypeDecl = disallowDoctypeDecl;
        }

        public Boolean getOmitXmlDeclaration() {
            return omitXmlDeclaration;
        }

        public void setOmitXmlDeclaration(Boolean omitXmlDeclaration) {
            this.omitXmlDeclaration = omitXmlDeclaration;
        }

        public Boolean getClearHeaders() {
            return clearHeaders;
        }

        public void setClearHeaders(Boolean clearHeaders) {
            this.clearHeaders = clearHeaders;
        }

        public String getSchemaResourceUri() {
            return schemaResourceUri;
        }

        public void setSchemaResourceUri(String schemaResourceUri) {
            this.schemaResourceUri = schemaResourceUri;
        }

        public String getOutputXmlEncoding() {
            return outputXmlEncoding;
        }

        public void setOutputXmlEncoding(String outputXmlEncoding) {
            this.outputXmlEncoding = outputXmlEncoding;
        }
    }
}