package es.dalocar.software.beans;

// Generated 29-oct-2009 22:50:47 by Hibernate Tools 3.2.4.GA

import java.util.HashSet;
import java.util.Set;

/**
 * Cliente generated by hbm2java
 */
public class Cliente implements java.io.Serializable, Comparable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 6327330513168686517L;
	
	private Integer identificador;
	private String nombre;
	private String direccion;
	private String poblacion;
	private String cp;
	private String provincia;
	private String cif;
	private String telefono;
	private String fax;
	private Boolean activo;
	private Set facturas = new HashSet(0);

	public Cliente() {
	}

	public Cliente(Integer identificador) {
		this.identificador = identificador;
	}

	public Cliente(Integer identificador, String nombre, String direccion,
			String poblacion, String cp, String provincia, String cif,
			String telefono, String fax, Boolean activo, Set facturas) {
		this.identificador = identificador;
		this.nombre = nombre;
		this.direccion = direccion;
		this.poblacion = poblacion;
		this.cp = cp;
		this.provincia = provincia;
		this.cif = cif;
		this.telefono = telefono;
		this.fax = fax;
		this.activo = activo;
		this.facturas = facturas;
	}

	public Integer getIdentificador() {
		return this.identificador;
	}

	public void setIdentificador(Integer identificador) {
		this.identificador = identificador;
	}

	public String getNombre() {
		return this.nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getDireccion() {
		return this.direccion;
	}

	public void setDireccion(String direccion) {
		this.direccion = direccion;
	}

	public String getPoblacion() {
		return this.poblacion;
	}

	public void setPoblacion(String poblacion) {
		this.poblacion = poblacion;
	}

	public String getCp() {
		return this.cp;
	}

	public void setCp(String cp) {
		this.cp = cp;
	}

	public String getProvincia() {
		return this.provincia;
	}

	public void setProvincia(String provincia) {
		this.provincia = provincia;
	}

	public String getCif() {
		return this.cif;
	}

	public void setCif(String cif) {
		this.cif = cif;
	}

	public String getTelefono() {
		return this.telefono;
	}

	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}

	public String getFax() {
		return this.fax;
	}

	public void setFax(String fax) {
		this.fax = fax;
	}

	public Boolean getActivo() {
		return this.activo;
	}

	public void setActivo(Boolean activo) {
		this.activo = activo;
	}

	public Set getFacturas() {
		return this.facturas;
	}

	public void setFacturas(Set facturas) {
		this.facturas = facturas;
	}

	
	/* (non-Javadoc)
	 * @see java.lang.Object#hashCode()
	 */
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((activo == null) ? 0 : activo.hashCode());
		result = prime * result + ((cif == null) ? 0 : cif.hashCode());
		result = prime * result + ((cp == null) ? 0 : cp.hashCode());
		result = prime * result
				+ ((direccion == null) ? 0 : direccion.hashCode());
		result = prime * result + ((fax == null) ? 0 : fax.hashCode());
		result = prime * result
				+ ((identificador == null) ? 0 : identificador.hashCode());
		result = prime * result + ((nombre == null) ? 0 : nombre.hashCode());
		result = prime * result
				+ ((poblacion == null) ? 0 : poblacion.hashCode());
		result = prime * result
				+ ((provincia == null) ? 0 : provincia.hashCode());
		result = prime * result
				+ ((telefono == null) ? 0 : telefono.hashCode());
		return result;
	}

	/* (non-Javadoc)
	 * @see java.lang.Object#equals(java.lang.Object)
	 */
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Cliente other = (Cliente) obj;
		if (activo == null) {
			if (other.activo != null)
				return false;
		} else if (!activo.equals(other.activo))
			return false;
		if (cif == null) {
			if (other.cif != null)
				return false;
		} else if (!cif.equals(other.cif))
			return false;
		if (cp == null) {
			if (other.cp != null)
				return false;
		} else if (!cp.equals(other.cp))
			return false;
		if (direccion == null) {
			if (other.direccion != null)
				return false;
		} else if (!direccion.equals(other.direccion))
			return false;
		if (fax == null) {
			if (other.fax != null)
				return false;
		} else if (!fax.equals(other.fax))
			return false;
		if (identificador == null) {
			if (other.identificador != null)
				return false;
		} else if (!identificador.equals(other.identificador))
			return false;
		if (nombre == null) {
			if (other.nombre != null)
				return false;
		} else if (!nombre.equals(other.nombre))
			return false;
		if (poblacion == null) {
			if (other.poblacion != null)
				return false;
		} else if (!poblacion.equals(other.poblacion))
			return false;
		if (provincia == null) {
			if (other.provincia != null)
				return false;
		} else if (!provincia.equals(other.provincia))
			return false;
		if (telefono == null) {
			if (other.telefono != null)
				return false;
		} else if (!telefono.equals(other.telefono))
			return false;
		return true;
	}

	/**
	 * Construye un <code>String</code> con todos los atributos
	 * en forma de  nombre = valor .
	 *
	 * @return una representación en  <code>String</code> del objeto 
	 */
	public String toString()
	{
	    final String TAB = "    ";
	    
	    StringBuffer retValue = new StringBuffer("");
	    
	    retValue.append("Cliente ( ");
	    retValue.append(super.toString().concat(TAB));
	    if(this.identificador != null)
		   retValue.append("identificador = ".concat(this.identificador.toString()).concat(TAB));
	    retValue.append("nombre = ".concat(this.nombre.toString()).concat(TAB));
	    retValue.append("direccion = ".concat(this.direccion.toString()).concat(TAB));
	    retValue.append("poblacion = ".concat(this.poblacion.toString()).concat(TAB));
	    retValue.append("cp = ".concat(this.cp.toString()).concat(TAB));
	    retValue.append("provincia = ".concat(this.provincia.toString()).concat(TAB));
	    retValue.append("cif = ".concat(this.cif.toString()).concat(TAB));
	    retValue.append("telefono = ".concat(this.telefono.toString()).concat(TAB));
	    retValue.append("fax = ".concat(this.fax.toString()).concat(TAB));
	    retValue.append("activo = ".concat(this.activo.toString()).concat(TAB));
	    retValue.append("facturas = ".concat(this.facturas.toString()).concat(TAB));
	    retValue.append(" )");
	
	    return retValue.toString();
	}

	public int compareTo(Object arg0) {
		return nombre.compareTo(((Cliente)arg0).getNombre());
	}	
}
