//
// 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.NameType;


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

    private final static long serialVersionUID = 1L;

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

    /**
     * Fully-initialising value constructor
     * 
     */
    public RetailEventNameType(final String value, final String languageID, final String languageLocaleID) {
        super(value, languageID, languageLocaleID);
    }

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

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

    @Override
    public RetailEventNameType withLanguageLocaleID(String value) {
        setLanguageLocaleID(value);
        return this;
    }

    @Override
    public String toString() {
        return Objects.toStringHelper(this).add("value", value).add("languageID", languageID).add("languageLocaleID", languageLocaleID).toString();
    }

    @Override
    public int hashCode() {
        return Objects.hashCode(value, languageID, languageLocaleID);
    }

    @Override
    public boolean equals(Object other) {
        if (this == other) {
            return true;
        }
        if (other == null) {
            return false;
        }
        if (getClass()!= other.getClass()) {
            return false;
        }
        final RetailEventNameType o = ((RetailEventNameType) other);
        return ((Objects.equal(value, o.value)&&Objects.equal(languageID, o.languageID))&&Objects.equal(languageLocaleID, o.languageLocaleID));
    }

}
