//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.11 
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
// Any modifications to this file will be lost upon recompilation of the source schema. 
// Generated on: 2017.07.31 at 11:10:09 AM IST 
//


package org.apache.xml.security.configuration;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.XmlValue;


/**
 * <p>Java class for AlgorithmType complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="AlgorithmType"&gt;
 *   &lt;simpleContent&gt;
 *     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
 *       &lt;attribute name="URI" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" /&gt;
 *       &lt;attribute name="Description" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *       &lt;attribute name="AlgorithmClass" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *       &lt;attribute name="RequirementLevel" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *       &lt;attribute name="SpecificationURL" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *       &lt;attribute name="JCEProvider" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *       &lt;attribute name="JCEName" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *       &lt;attribute name="KeyLength" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
 *       &lt;attribute name="IVLength" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
 *       &lt;attribute name="RequiredKey" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *     &lt;/extension&gt;
 *   &lt;/simpleContent&gt;
 * &lt;/complexType&gt;
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "AlgorithmType", namespace = "http://www.xmlsecurity.org/NS/configuration", propOrder = {
    "value"
})
public class AlgorithmType {

    @XmlValue
    protected String value;
    @XmlAttribute(name = "URI", required = true)
    @XmlSchemaType(name = "anyURI")
    protected String uri;
    @XmlAttribute(name = "Description", required = true)
    protected String description;
    @XmlAttribute(name = "AlgorithmClass", required = true)
    protected String algorithmClass;
    @XmlAttribute(name = "RequirementLevel", required = true)
    protected String requirementLevel;
    @XmlAttribute(name = "SpecificationURL")
    protected String specificationURL;
    @XmlAttribute(name = "JCEProvider")
    protected String jceProvider;
    @XmlAttribute(name = "JCEName", required = true)
    protected String jceName;
    @XmlAttribute(name = "KeyLength")
    protected Integer keyLength;
    @XmlAttribute(name = "IVLength")
    protected Integer ivLength;
    @XmlAttribute(name = "RequiredKey")
    protected String requiredKey;

    /**
     * Gets the value of the value property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getValue() {
        return value;
    }

    /**
     * Sets the value of the value property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setValue(String value) {
        this.value = value;
    }

    /**
     * Gets the value of the uri property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getURI() {
        return uri;
    }

    /**
     * Sets the value of the uri property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setURI(String value) {
        this.uri = value;
    }

    /**
     * Gets the value of the description property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getDescription() {
        return description;
    }

    /**
     * Sets the value of the description property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setDescription(String value) {
        this.description = value;
    }

    /**
     * Gets the value of the algorithmClass property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getAlgorithmClass() {
        return algorithmClass;
    }

    /**
     * Sets the value of the algorithmClass property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setAlgorithmClass(String value) {
        this.algorithmClass = value;
    }

    /**
     * Gets the value of the requirementLevel property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getRequirementLevel() {
        return requirementLevel;
    }

    /**
     * Sets the value of the requirementLevel property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setRequirementLevel(String value) {
        this.requirementLevel = value;
    }

    /**
     * Gets the value of the specificationURL property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getSpecificationURL() {
        return specificationURL;
    }

    /**
     * Sets the value of the specificationURL property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setSpecificationURL(String value) {
        this.specificationURL = value;
    }

    /**
     * Gets the value of the jceProvider property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getJCEProvider() {
        return jceProvider;
    }

    /**
     * Sets the value of the jceProvider property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setJCEProvider(String value) {
        this.jceProvider = value;
    }

    /**
     * Gets the value of the jceName property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getJCEName() {
        return jceName;
    }

    /**
     * Sets the value of the jceName property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setJCEName(String value) {
        this.jceName = value;
    }

    /**
     * Gets the value of the keyLength property.
     * 
     * @return
     *     possible object is
     *     {@link Integer }
     *     
     */
    public Integer getKeyLength() {
        return keyLength;
    }

    /**
     * Sets the value of the keyLength property.
     * 
     * @param value
     *     allowed object is
     *     {@link Integer }
     *     
     */
    public void setKeyLength(Integer value) {
        this.keyLength = value;
    }

    /**
     * Gets the value of the ivLength property.
     * 
     * @return
     *     possible object is
     *     {@link Integer }
     *     
     */
    public Integer getIVLength() {
        return ivLength;
    }

    /**
     * Sets the value of the ivLength property.
     * 
     * @param value
     *     allowed object is
     *     {@link Integer }
     *     
     */
    public void setIVLength(Integer value) {
        this.ivLength = value;
    }

    /**
     * Gets the value of the requiredKey property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getRequiredKey() {
        return requiredKey;
    }

    /**
     * Sets the value of the requiredKey property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setRequiredKey(String value) {
        this.requiredKey = value;
    }

}
