package database.dataset;

import java.io.Serializable;

/**
 * @author alexis
 * dataset de la table Article
 */
public class Article implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = -1694583059252663273L;
	private int article_p_id;
	private String article_code;
	private String article_description;
	private boolean article_taxable;
	private int categorie_fk_id;
	private boolean article_actif;
	private final String NOM_TABLE = "article";

	/**************************************************************************
	 * constructeur
	 *************************************************************************/
	
	public Article(int article_p_id, String article_code,
				   String article_description, boolean article_taxable,
				   int categorie_fk_id, boolean article_actif) {
		this.article_p_id = article_p_id;
		this.article_code = article_code;
		this.article_description = article_description;
		this.article_taxable = article_taxable;
		this.categorie_fk_id = categorie_fk_id;
		this.article_actif = article_actif;
	}

	/**************************************************************************
	 * getter
	 *************************************************************************/
	
	/**
	 * @return the article_p_id
	 */
	public int getarticle_p_id() {
		return article_p_id;
	}

	/**
	 * @return the article_code
	 */
	public String getArticle_code() {
		return article_code;
	}

	/**
	 * @return the article_description
	 */
	public String getArticle_description() {
		return article_description;
	}

	/**
	 * @return the article_taxable
	 */
	public boolean isArticle_taxable() {
		return article_taxable;
	}

	/**
	 * @return the categorie_fk_id
	 */
	public int getCategorie_fk_id() {
		return categorie_fk_id;
	}

	/**
	 * @return the article_actif
	 */
	public boolean isArticle_actif() {
		return article_actif;
	}
	
	/**
	 * Retourne le nom de la table
	 * @return NOM_TABLE
	 */
	public String getNomTable()
	{
		return NOM_TABLE;		
	}

	/**************************************************************************
	 * setter
	 *************************************************************************/
	
	/**
	 * @param article_p_id the article_p_id to set
	 */
	public void setarticle_p_id(int article_p_id) {
		this.article_p_id = article_p_id;
	}

	/**
	 * @param article_code the article_code to set
	 */
	public void setArticle_code(String article_code) {
		this.article_code = article_code;
	}

	/**
	 * @param article_description the article_description to set
	 */
	public void setArticle_description(String article_description) {
		this.article_description = article_description;
	}

	/**
	 * @param article_taxable the article_taxable to set
	 */
	public void setArticle_taxable(boolean article_taxable) {
		this.article_taxable = article_taxable;
	}

	/**
	 * @param categorie_fk_id the categorie_fk_id to set
	 */
	public void setCategorie_fk_id(int categorie_fk_id) {
		this.categorie_fk_id = categorie_fk_id;
	}

	/**
	 * @param article_actif the article_actif to set
	 */
	public void setArticle_actif(boolean article_actif) {
		this.article_actif = article_actif;
	}

	/**************************************************************************
	 * object
	 *************************************************************************/
	
	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "Article [article_p_id=" + article_p_id + ", article_code="
				+ article_code + ", article_description=" + article_description
				+ ", article_taxable=" + article_taxable + ", categorie_fk_id="
				+ categorie_fk_id + ", article_actif=" + article_actif + "]";
	}

	/* (non-Javadoc)
	 * @see java.lang.Object#hashCode()
	 */
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + (article_actif ? 1231 : 1237);
		result = prime * result
				+ ((article_code == null) ? 0 : article_code.hashCode());
		result = prime
				* result
				+ ((article_description == null) ? 0 : article_description
						.hashCode());
		result = prime * result + article_p_id;
		result = prime * result + (article_taxable ? 1231 : 1237);
		result = prime * result + categorie_fk_id;
		return result;
	}

	/* (non-Javadoc)
	 * @see java.lang.Object#equals(java.lang.Object)
	 */
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (!(obj instanceof Article))
			return false;
		Article other = (Article) obj;
		if (article_actif != other.article_actif)
			return false;
		if (article_code == null) {
			if (other.article_code != null)
				return false;
		} else if (!article_code.equals(other.article_code))
			return false;
		if (article_description == null) {
			if (other.article_description != null)
				return false;
		} else if (!article_description.equals(other.article_description))
			return false;
		if (article_p_id != other.article_p_id)
			return false;
		if (article_taxable != other.article_taxable)
			return false;
		if (categorie_fk_id != other.categorie_fk_id)
			return false;
		return true;
	}
}