/*
 * Copyright 2010 James Pether Sörling
 *
 * Licensed 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.
 *
 *	$Id$
 *  $HeadURL$
*/
// 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: 2019.02.24 at 11:40:13 PM CET
//


package com.hack23.cia.model.external.riksdagen.votering.impl;

import java.math.BigInteger;

import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;

import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import com.hack23.cia.model.common.api.ModelObject;


/**
 * The Class BallotDocumentElement.
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "BallotDocumentElement", propOrder = {
    "hangarId",
    "docId",
    "htmlformat",
    "relatedId",
    "source",
    "sourceid",
    "rm",
    "label",
    "elementType",
    "documentType",
    "subType",
    "status",
    "tempLabel",
    "org",
    "numberValue",
    "endNumberValue",
    "title",
    "subTitle",
    "createdDate",
    "madePublicDate",
    "systemDate",
    "documentUrlText",
    "documentUrlHtml",
    "documentStatusUrlXml",
    "committeeReportUrlXml"
})
@Entity(name = "BallotDocumentElement")
@Table(name = "BALLOT_DOCUMENT_ELEMENT")
@Inheritance(strategy = InheritanceType.JOINED)
public class BallotDocumentElement
    implements ModelObject
{

    /**
	 *
	 */
	private static final long serialVersionUID = 1L;

	/** The hangar id. */
    @XmlElement(name = "hangar_id", required = true)
    protected String hangarId;

    /** The doc id. */
    @XmlElement(name = "dok_id", required = true)
    protected String docId;

    /** The htmlformat. */
    @XmlElement(required = true)
    protected String htmlformat;

    /** The related id. */
    @XmlElement(name = "relaterat_id", required = true)
    protected String relatedId;

    /** The source. */
    @XmlElement(required = true)
    protected String source;

    /** The sourceid. */
    @XmlElement(required = true)
    protected String sourceid;

    /** The rm. */
    @XmlElement(required = true)
    protected String rm;

    /** The label. */
    @XmlElement(name = "beteckning", required = true)
    protected String label;

    /** The element type. */
    @XmlElement(name = "typ", required = true)
    protected String elementType;

    /** The document type. */
    @XmlElement(name = "doktyp", required = true)
    protected String documentType;

    /** The sub type. */
    @XmlElement(name = "subtyp", required = true)
    protected String subType;

    /** The status. */
    @XmlElement(required = true)
    protected String status;

    /** The temp label. */
    @XmlElement(name = "tempbeteckning", required = true)
    protected String tempLabel;

    /** The org. */
    @XmlElement(name = "organ", required = true)
    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
    @XmlSchemaType(name = "NCName")
    protected String org;

    /** The number value. */
    @XmlElement(name = "nummer", required = true)
    protected BigInteger numberValue;

    /** The end number value. */
    @XmlElement(name = "slutnummer", required = true)
    protected BigInteger endNumberValue;

    /** The title. */
    @XmlElement(name = "titel", required = true)
    protected String title;

    /** The sub title. */
    @XmlElement(name = "subtitel", required = true)
    protected String subTitle;

    /** The created date. */
    @XmlElement(name = "datum", required = true)
    protected String createdDate;

    /** The made public date. */
    @XmlElement(name = "publicerad", required = true)
    protected String madePublicDate;

    /** The system date. */
    @XmlElement(name = "systemdatum", required = true)
    protected String systemDate;

    /** The document url text. */
    @XmlElement(name = "dokument_url_text", required = true)
    @XmlSchemaType(name = "anyURI")
    protected String documentUrlText;

    /** The document url html. */
    @XmlElement(name = "dokument_url_html", required = true)
    @XmlSchemaType(name = "anyURI")
    protected String documentUrlHtml;

    /** The document status url xml. */
    @XmlElement(name = "dokumentstatus_url_xml", required = true)
    @XmlSchemaType(name = "anyURI")
    protected String documentStatusUrlXml;

    /** The committee report url xml. */
    @XmlElement(name = "utskottsforslag_url_xml", required = true)
    @XmlSchemaType(name = "anyURI")
    protected String committeeReportUrlXml;

    /**
	 * Gets the hangar id.
	 *
	 * @return the hangar id
	 */
    @Basic
    @Column(name = "HANGAR_ID")
    public String getHangarId() {
        return hangarId;
    }

    /**
	 * Sets the hangar id.
	 *
	 * @param value the new hangar id
	 */
    public void setHangarId(final String value) {
        this.hangarId = value;
    }

    /**
	 * Gets the doc id.
	 *
	 * @return the doc id
	 */
    @Basic
    @Column(name = "DOC_ID")
    public String getDocId() {
        return docId;
    }

    /**
	 * Sets the doc id.
	 *
	 * @param value the new doc id
	 */
    public void setDocId(final String value) {
        this.docId = value;
    }

    /**
	 * Gets the htmlformat.
	 *
	 * @return the htmlformat
	 */
    @Basic
    @Column(name = "HTMLFORMAT")
    public String getHtmlformat() {
        return htmlformat;
    }

    /**
	 * Sets the htmlformat.
	 *
	 * @param value the new htmlformat
	 */
    public void setHtmlformat(final String value) {
        this.htmlformat = value;
    }

    /**
	 * Gets the related id.
	 *
	 * @return the related id
	 */
    @Basic
    @Column(name = "RELATED_ID")
    public String getRelatedId() {
        return relatedId;
    }

    /**
	 * Sets the related id.
	 *
	 * @param value the new related id
	 */
    public void setRelatedId(final String value) {
        this.relatedId = value;
    }

    /**
	 * Gets the source.
	 *
	 * @return the source
	 */
    @Basic
    @Column(name = "SOURCE_")
    public String getSource() {
        return source;
    }

    /**
	 * Sets the source.
	 *
	 * @param value the new source
	 */
    public void setSource(final String value) {
        this.source = value;
    }

    /**
	 * Gets the sourceid.
	 *
	 * @return the sourceid
	 */
    @Id
    @Column(name = "SOURCEID")
    public String getSourceid() {
        return sourceid;
    }

    /**
	 * Sets the sourceid.
	 *
	 * @param value the new sourceid
	 */
    public void setSourceid(final String value) {
        this.sourceid = value;
    }

    /**
	 * Gets the rm.
	 *
	 * @return the rm
	 */
    @Basic
    @Column(name = "RM")
    public String getRm() {
        return rm;
    }

    /**
	 * Sets the rm.
	 *
	 * @param value the new rm
	 */
    public void setRm(final String value) {
        this.rm = value;
    }

    /**
	 * Gets the label.
	 *
	 * @return the label
	 */
    @Basic
    @Column(name = "LABEL")
    public String getLabel() {
        return label;
    }

    /**
	 * Sets the label.
	 *
	 * @param value the new label
	 */
    public void setLabel(final String value) {
        this.label = value;
    }

    /**
	 * Gets the element type.
	 *
	 * @return the element type
	 */
    @Basic
    @Column(name = "ELEMENT_TYPE")
    public String getElementType() {
        return elementType;
    }

    /**
	 * Sets the element type.
	 *
	 * @param value the new element type
	 */
    public void setElementType(final String value) {
        this.elementType = value;
    }

    /**
	 * Gets the document type.
	 *
	 * @return the document type
	 */
    @Basic
    @Column(name = "DOCUMENT_TYPE")
    public String getDocumentType() {
        return documentType;
    }

    /**
	 * Sets the document type.
	 *
	 * @param value the new document type
	 */
    public void setDocumentType(final String value) {
        this.documentType = value;
    }

    /**
	 * Gets the sub type.
	 *
	 * @return the sub type
	 */
    @Basic
    @Column(name = "SUB_TYPE")
    public String getSubType() {
        return subType;
    }

    /**
	 * Sets the sub type.
	 *
	 * @param value the new sub type
	 */
    public void setSubType(final String value) {
        this.subType = value;
    }

    /**
	 * Gets the status.
	 *
	 * @return the status
	 */
    @Basic
    @Column(name = "STATUS")
    public String getStatus() {
        return status;
    }

    /**
	 * Sets the status.
	 *
	 * @param value the new status
	 */
    public void setStatus(final String value) {
        this.status = value;
    }

    /**
	 * Gets the temp label.
	 *
	 * @return the temp label
	 */
    @Basic
    @Column(name = "TEMP_LABEL")
    public String getTempLabel() {
        return tempLabel;
    }

    /**
	 * Sets the temp label.
	 *
	 * @param value the new temp label
	 */
    public void setTempLabel(final String value) {
        this.tempLabel = value;
    }

    /**
	 * Gets the org.
	 *
	 * @return the org
	 */
    @Basic
    @Column(name = "ORG")
    public String getOrg() {
        return org;
    }

    /**
	 * Sets the org.
	 *
	 * @param value the new org
	 */
    public void setOrg(final String value) {
        this.org = value;
    }

    /**
	 * Gets the number value.
	 *
	 * @return the number value
	 */
    @Basic
    @Column(name = "NUMBER_VALUE", precision = 20)
    public BigInteger getNumberValue() {
        return numberValue;
    }

    /**
	 * Sets the number value.
	 *
	 * @param value the new number value
	 */
    public void setNumberValue(final BigInteger value) {
        this.numberValue = value;
    }

    /**
	 * Gets the end number value.
	 *
	 * @return the end number value
	 */
    @Basic
    @Column(name = "END_NUMBER_VALUE", precision = 20)
    public BigInteger getEndNumberValue() {
        return endNumberValue;
    }

    /**
	 * Sets the end number value.
	 *
	 * @param value the new end number value
	 */
    public void setEndNumberValue(final BigInteger value) {
        this.endNumberValue = value;
    }

    /**
	 * Gets the title.
	 *
	 * @return the title
	 */
    @Basic
    @Column(name = "TITLE", length = 65536)
    public String getTitle() {
        return title;
    }

    /**
	 * Sets the title.
	 *
	 * @param value the new title
	 */
    public void setTitle(final String value) {
        this.title = value;
    }

    /**
	 * Gets the sub title.
	 *
	 * @return the sub title
	 */
    @Basic
    @Column(name = "SUB_TITLE", length = 65536)
    public String getSubTitle() {
        return subTitle;
    }

    /**
	 * Sets the sub title.
	 *
	 * @param value the new sub title
	 */
    public void setSubTitle(final String value) {
        this.subTitle = value;
    }

    /**
	 * Gets the created date.
	 *
	 * @return the created date
	 */
    @Basic
    @Column(name = "CREATED_DATE")
    public String getCreatedDate() {
        return createdDate;
    }

    /**
	 * Sets the created date.
	 *
	 * @param value the new created date
	 */
    public void setCreatedDate(final String value) {
        this.createdDate = value;
    }

    /**
	 * Gets the made public date.
	 *
	 * @return the made public date
	 */
    @Basic
    @Column(name = "MADE_PUBLIC_DATE")
    public String getMadePublicDate() {
        return madePublicDate;
    }

    /**
	 * Sets the made public date.
	 *
	 * @param value the new made public date
	 */
    public void setMadePublicDate(final String value) {
        this.madePublicDate = value;
    }

    /**
	 * Gets the system date.
	 *
	 * @return the system date
	 */
    @Basic
    @Column(name = "SYSTEM_DATE")
    public String getSystemDate() {
        return systemDate;
    }

    /**
	 * Sets the system date.
	 *
	 * @param value the new system date
	 */
    public void setSystemDate(final String value) {
        this.systemDate = value;
    }

    /**
	 * Gets the document url text.
	 *
	 * @return the document url text
	 */
    @Basic
    @Column(name = "DOCUMENT_URL_TEXT")
    public String getDocumentUrlText() {
        return documentUrlText;
    }

    /**
	 * Sets the document url text.
	 *
	 * @param value the new document url text
	 */
    public void setDocumentUrlText(final String value) {
        this.documentUrlText = value;
    }

    /**
	 * Gets the document url html.
	 *
	 * @return the document url html
	 */
    @Basic
    @Column(name = "DOCUMENT_URL_HTML")
    public String getDocumentUrlHtml() {
        return documentUrlHtml;
    }

    /**
	 * Sets the document url html.
	 *
	 * @param value the new document url html
	 */
    public void setDocumentUrlHtml(final String value) {
        this.documentUrlHtml = value;
    }

    /**
	 * Gets the document status url xml.
	 *
	 * @return the document status url xml
	 */
    @Basic
    @Column(name = "DOCUMENT_STATUS_URL_XML")
    public String getDocumentStatusUrlXml() {
        return documentStatusUrlXml;
    }

    /**
	 * Sets the document status url xml.
	 *
	 * @param value the new document status url xml
	 */
    public void setDocumentStatusUrlXml(final String value) {
        this.documentStatusUrlXml = value;
    }

    /**
	 * Gets the committee report url xml.
	 *
	 * @return the committee report url xml
	 */
    @Basic
    @Column(name = "COMMITTEE_REPORT_URL_XML")
    public String getCommitteeReportUrlXml() {
        return committeeReportUrlXml;
    }

    /**
	 * Sets the committee report url xml.
	 *
	 * @param value the new committee report url xml
	 */
    public void setCommitteeReportUrlXml(final String value) {
        this.committeeReportUrlXml = value;
    }

    /**
	 * With hangar id.
	 *
	 * @param value the value
	 * @return the ballot document element
	 */
    public BallotDocumentElement withHangarId(final String value) {
        setHangarId(value);
        return this;
    }

    /**
	 * With doc id.
	 *
	 * @param value the value
	 * @return the ballot document element
	 */
    public BallotDocumentElement withDocId(final String value) {
        setDocId(value);
        return this;
    }

    /**
	 * With htmlformat.
	 *
	 * @param value the value
	 * @return the ballot document element
	 */
    public BallotDocumentElement withHtmlformat(final String value) {
        setHtmlformat(value);
        return this;
    }

    /**
	 * With related id.
	 *
	 * @param value the value
	 * @return the ballot document element
	 */
    public BallotDocumentElement withRelatedId(final String value) {
        setRelatedId(value);
        return this;
    }

    /**
	 * With source.
	 *
	 * @param value the value
	 * @return the ballot document element
	 */
    public BallotDocumentElement withSource(final String value) {
        setSource(value);
        return this;
    }

    /**
	 * With sourceid.
	 *
	 * @param value the value
	 * @return the ballot document element
	 */
    public BallotDocumentElement withSourceid(final String value) {
        setSourceid(value);
        return this;
    }

    /**
	 * With rm.
	 *
	 * @param value the value
	 * @return the ballot document element
	 */
    public BallotDocumentElement withRm(final String value) {
        setRm(value);
        return this;
    }

    /**
	 * With label.
	 *
	 * @param value the value
	 * @return the ballot document element
	 */
    public BallotDocumentElement withLabel(final String value) {
        setLabel(value);
        return this;
    }

    /**
	 * With element type.
	 *
	 * @param value the value
	 * @return the ballot document element
	 */
    public BallotDocumentElement withElementType(final String value) {
        setElementType(value);
        return this;
    }

    /**
	 * With document type.
	 *
	 * @param value the value
	 * @return the ballot document element
	 */
    public BallotDocumentElement withDocumentType(final String value) {
        setDocumentType(value);
        return this;
    }

    /**
	 * With sub type.
	 *
	 * @param value the value
	 * @return the ballot document element
	 */
    public BallotDocumentElement withSubType(final String value) {
        setSubType(value);
        return this;
    }

    /**
	 * With status.
	 *
	 * @param value the value
	 * @return the ballot document element
	 */
    public BallotDocumentElement withStatus(final String value) {
        setStatus(value);
        return this;
    }

    /**
	 * With temp label.
	 *
	 * @param value the value
	 * @return the ballot document element
	 */
    public BallotDocumentElement withTempLabel(final String value) {
        setTempLabel(value);
        return this;
    }

    /**
	 * With org.
	 *
	 * @param value the value
	 * @return the ballot document element
	 */
    public BallotDocumentElement withOrg(final String value) {
        setOrg(value);
        return this;
    }

    /**
	 * With number value.
	 *
	 * @param value the value
	 * @return the ballot document element
	 */
    public BallotDocumentElement withNumberValue(final BigInteger value) {
        setNumberValue(value);
        return this;
    }

    /**
	 * With end number value.
	 *
	 * @param value the value
	 * @return the ballot document element
	 */
    public BallotDocumentElement withEndNumberValue(final BigInteger value) {
        setEndNumberValue(value);
        return this;
    }

    /**
	 * With title.
	 *
	 * @param value the value
	 * @return the ballot document element
	 */
    public BallotDocumentElement withTitle(final String value) {
        setTitle(value);
        return this;
    }

    /**
	 * With sub title.
	 *
	 * @param value the value
	 * @return the ballot document element
	 */
    public BallotDocumentElement withSubTitle(final String value) {
        setSubTitle(value);
        return this;
    }

    /**
	 * With created date.
	 *
	 * @param value the value
	 * @return the ballot document element
	 */
    public BallotDocumentElement withCreatedDate(final String value) {
        setCreatedDate(value);
        return this;
    }

    /**
	 * With made public date.
	 *
	 * @param value the value
	 * @return the ballot document element
	 */
    public BallotDocumentElement withMadePublicDate(final String value) {
        setMadePublicDate(value);
        return this;
    }

    /**
	 * With system date.
	 *
	 * @param value the value
	 * @return the ballot document element
	 */
    public BallotDocumentElement withSystemDate(final String value) {
        setSystemDate(value);
        return this;
    }

    /**
	 * With document url text.
	 *
	 * @param value the value
	 * @return the ballot document element
	 */
    public BallotDocumentElement withDocumentUrlText(final String value) {
        setDocumentUrlText(value);
        return this;
    }

    /**
	 * With document url html.
	 *
	 * @param value the value
	 * @return the ballot document element
	 */
    public BallotDocumentElement withDocumentUrlHtml(final String value) {
        setDocumentUrlHtml(value);
        return this;
    }

    /**
	 * With document status url xml.
	 *
	 * @param value the value
	 * @return the ballot document element
	 */
    public BallotDocumentElement withDocumentStatusUrlXml(final String value) {
        setDocumentStatusUrlXml(value);
        return this;
    }

    /**
	 * With committee report url xml.
	 *
	 * @param value the value
	 * @return the ballot document element
	 */
    public BallotDocumentElement withCommitteeReportUrlXml(final String value) {
        setCommitteeReportUrlXml(value);
        return this;
    }

	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public final String toString() {
		return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
	}


    /* (non-Javadoc)
     * @see java.lang.Object#equals(java.lang.Object)
     */
    @Override
	public boolean equals(final Object object) {
    	return EqualsBuilder.reflectionEquals(this,object);
    }

	/* (non-Javadoc)
	 * @see java.lang.Object#hashCode()
	 */
	@Override
	public final int hashCode() {
		return HashCodeBuilder.reflectionHashCode(this);
	}

}
