//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.7 
// 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.24 at 05:36:05 PM EEST 
//


package lt.registrucentras.esaskaita.service.invoice.ubl.cbc;

import java.io.Serializable;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlType;
import com.google.common.base.Objects;
import lt.registrucentras.esaskaita.service.invoice.ubl.udt.CodeType;


/**
 * <p>Java class for AdjustmentReasonCodeType complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="AdjustmentReasonCodeType">
 *   &lt;simpleContent>
 *     &lt;extension base="&lt;urn:oasis:names:specification:ubl:schema:xsd:UnqualifiedDataTypes-2>CodeType">
 *     &lt;/extension>
 *   &lt;/simpleContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "AdjustmentReasonCodeType")
public class AdjustmentReasonCodeType
    extends CodeType
    implements Serializable
{

    private final static long serialVersionUID = 1L;

    /**
     * Default no-arg constructor
     * 
     */
    public AdjustmentReasonCodeType() {
        super();
    }

    /**
     * Fully-initialising value constructor
     * 
     */
    public AdjustmentReasonCodeType(final String value, final String listID, final String listAgencyID, final String listAgencyName, final String listName, final String listVersionID, final String name, final String languageID, final String listURI, final String listSchemeURI) {
        super(value, listID, listAgencyID, listAgencyName, listName, listVersionID, name, languageID, listURI, listSchemeURI);
    }

    @Override
    public AdjustmentReasonCodeType withValue(String value) {
        setValue(value);
        return this;
    }

    @Override
    public AdjustmentReasonCodeType withListID(String value) {
        setListID(value);
        return this;
    }

    @Override
    public AdjustmentReasonCodeType withListAgencyID(String value) {
        setListAgencyID(value);
        return this;
    }

    @Override
    public AdjustmentReasonCodeType withListAgencyName(String value) {
        setListAgencyName(value);
        return this;
    }

    @Override
    public AdjustmentReasonCodeType withListName(String value) {
        setListName(value);
        return this;
    }

    @Override
    public AdjustmentReasonCodeType withListVersionID(String value) {
        setListVersionID(value);
        return this;
    }

    @Override
    public AdjustmentReasonCodeType withName(String value) {
        setName(value);
        return this;
    }

    @Override
    public AdjustmentReasonCodeType withLanguageID(String value) {
        setLanguageID(value);
        return this;
    }

    @Override
    public AdjustmentReasonCodeType withListURI(String value) {
        setListURI(value);
        return this;
    }

    @Override
    public AdjustmentReasonCodeType withListSchemeURI(String value) {
        setListSchemeURI(value);
        return this;
    }

    @Override
    public String toString() {
        return Objects.toStringHelper(this).add("value", value).add("listID", listID).add("listAgencyID", listAgencyID).add("listAgencyName", listAgencyName).add("listName", listName).add("listVersionID", listVersionID).add("name", name).add("languageID", languageID).add("listURI", listURI).add("listSchemeURI", listSchemeURI).toString();
    }

    @Override
    public int hashCode() {
        return Objects.hashCode(value, listID, listAgencyID, listAgencyName, listName, listVersionID, name, languageID, listURI, listSchemeURI);
    }

    @Override
    public boolean equals(Object other) {
        if (this == other) {
            return true;
        }
        if (other == null) {
            return false;
        }
        if (getClass()!= other.getClass()) {
            return false;
        }
        final AdjustmentReasonCodeType o = ((AdjustmentReasonCodeType) other);
        return (((((((((Objects.equal(value, o.value)&&Objects.equal(listID, o.listID))&&Objects.equal(listAgencyID, o.listAgencyID))&&Objects.equal(listAgencyName, o.listAgencyName))&&Objects.equal(listName, o.listName))&&Objects.equal(listVersionID, o.listVersionID))&&Objects.equal(name, o.name))&&Objects.equal(languageID, o.languageID))&&Objects.equal(listURI, o.listURI))&&Objects.equal(listSchemeURI, o.listSchemeURI));
    }

}
