/* Demoiselle Framework Copyright (C) 2013 SERPRO ============================================================================ This file is part of Demoiselle Framework. Demoiselle Framework is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 3 as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU Lesser General Public License version 3 along with this program; if not, see <http://www.gnu.org/licenses/> or write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ============================================================================ Este arquivo é parte do Framework Demoiselle. O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação do Software Livre (FSF). Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português para maiores detalhes. Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título "LICENCA.txt", junto com esse programa. Se não, acesse <http://www.gnu.org/licenses/> ou escreva para a Fundação do Software Livre (FSF) Inc., 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. */ package org.demoiselle.estacionamento.domain; import javax.persistence.*; import java.io.Serializable; @Entity @Table(name="tb_automovel") public class Automovel implements Serializable { private static final long serialVersionUID = 1L; @Id @Column(name="id_automovel") @GeneratedValue(strategy = GenerationType.SEQUENCE) private Long id; @Column (length=255) private String marca; @Column (length=255) private String modelo; @Column (nullable=false, length=9) private String placa; @Enumerated(EnumType.STRING) @Column (nullable=false, length=10) private AutomovelTamanho tamanho; @Enumerated(EnumType.STRING) @Column (nullable=false, length=10) private AutomovelTipo tipo; @ManyToOne @JoinColumn(name="cliente_fk") private Cliente cliente; public Automovel() { super(); } public Automovel(String marca, String modelo, String placa, AutomovelTamanho tamanho, AutomovelTipo tipo) { this.marca = marca; this.modelo = modelo; this.placa = placa; this.tamanho = tamanho; this.tipo = tipo; } public Automovel(String marca, String modelo, String placa, AutomovelTamanho tamanho, AutomovelTipo tipo, Cliente cliente) { this.marca = marca; this.modelo = modelo; this.placa = placa; this.tamanho = tamanho; this.tipo = tipo; this.cliente = cliente; } public void setId(Long id) { this.id = id; } public Long getId() { return id; } public void setMarca(String marca) { this.marca = marca; } public String getMarca() { return marca; } public void setModelo(String modelo) { this.modelo = modelo; } public String getModelo() { return modelo; } public void setPlaca(String placa) { this.placa = placa; } public String getPlaca() { return placa; } public void setTamanho(AutomovelTamanho tamanho) { this.tamanho = tamanho; } public AutomovelTamanho getTamanho() { return tamanho; } public void setTipo(AutomovelTipo tipo) { this.tipo = tipo; } public AutomovelTipo getTipo() { return tipo; } public void setCliente(Cliente cliente) { this.cliente = cliente; } public Cliente getCliente() { return cliente; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((cliente == null) ? 0 : cliente.hashCode()); result = prime * result + ((id == null) ? 0 : id.hashCode()); result = prime * result + ((marca == null) ? 0 : marca.hashCode()); result = prime * result + ((modelo == null) ? 0 : modelo.hashCode()); result = prime * result + ((placa == null) ? 0 : placa.hashCode()); result = prime * result + ((tamanho == null) ? 0 : tamanho.hashCode()); result = prime * result + ((tipo == null) ? 0 : tipo.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Automovel other = (Automovel) obj; if (cliente == null) { if (other.cliente != null) return false; } else if (!cliente.equals(other.cliente)) return false; if (id == null) { if (other.id != null) return false; } else if (!id.equals(other.id)) return false; if (marca == null) { if (other.marca != null) return false; } else if (!marca.equals(other.marca)) return false; if (modelo == null) { if (other.modelo != null) return false; } else if (!modelo.equals(other.modelo)) return false; if (placa == null) { if (other.placa != null) return false; } else if (!placa.equals(other.placa)) return false; if (tamanho != other.tamanho) return false; if (tipo != other.tipo) return false; return true; } }