Rev 524 |
Blame |
Compare with Previous |
Last modification |
View Log
| Download
| RSS feed
package br.com.ec.domain.model;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Transient;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import org.hibernate.annotations.ForeignKey;
import org.hibernate.validator.constraints.NotEmpty;
import br.com.ec.core.interfaces.Alterar;
import br.com.ec.core.interfaces.Cadastrar;
import br.com.ec.core.util.StringUtil;
import br.com.ec.core.util.VerificadorUtil;
@
Entity
@Table
(name=
"sec_modelo", schema=
"sc_sec")
public class Modelo
implements Serializable,
Comparable<Modelo
> {
private static final long serialVersionUID = 1L
;
private Long sequencial
;
private Marca marca
;
private String descricao
;
private String descricaoTecnica
;
private String descricaoEtiqueta
;
private String descricaoLocalizacao
;
private Boolean indicadorFavorito
;
private Date dataCadastro
;
private Boolean ativo
;
public Modelo
() {}
public Modelo
(Long sequencial
) {
this.
sequencial = sequencial
;
}
public Modelo
(Marca marca
) {
this.
marca = marca
;
}
@Id
@SequenceGenerator
(name =
"sec_modelo_seq_modelo_seq") //TODO: ALTERAR NOME DA SEQUENCE
@GeneratedValue
(strategy = GenerationType.
IDENTITY)
@Column
(name=
"seq_modelo", nullable=
false)
public Long getSequencial
() {
return sequencial
;
}
public void setSequencial
(Long sequencial
) {
this.
sequencial = sequencial
;
}
@ManyToOne
@ForeignKey
(name=
"fk_modelo_marca")
@JoinColumn
(name =
"seq_marca", referencedColumnName=
"seq_marca", nullable=
true)
public Marca getMarca
() {
return marca
;
}
public void setMarca
(Marca marca
) {
this.
marca = marca
;
}
@Column
(name=
"dsc_modelo")
@Size
(max =
255, message =
"Limite de caracteres ultrapassado: Descrição")
@
NotEmpty(message=
"Obrigatório informar a descrição", groups=
{Cadastrar.
class, Alterar.
class})
public String getDescricao
() {
return descricao
;
}
public void setDescricao
(String descricao
) {
this.
descricao = StringUtil.
setarUpperCaseComTrim(descricao
);
}
@Column
(name=
"dsc_tecnica")
@Size
(max =
255, message =
"Limite de caracteres ultrapassado: Descrição Técnica")
public String getDescricaoTecnica
() {
return descricaoTecnica
;
}
public void setDescricaoTecnica
(String descricaoTecnica
) {
this.
descricaoTecnica = StringUtil.
setarUpperCaseComTrim(descricaoTecnica
);
}
@Column
(name=
"dsc_etiqueta")
@Size
(max =
20, message =
"Limite de caracteres ultrapassado: Descrição da Etiqueta")
@
NotEmpty(message=
"Obrigatório informar a descrição da etiqueta", groups=
{Cadastrar.
class, Alterar.
class})
public String getDescricaoEtiqueta
() {
return descricaoEtiqueta
;
}
public void setDescricaoEtiqueta
(String descricaoEtiqueta
) {
this.
descricaoEtiqueta = StringUtil.
setarUpperCaseComTrim(descricaoEtiqueta
);
}
@Column
(name=
"dsc_localizacao")
@Size
(max =
20, message =
"Limite de caracteres ultrapassado: Localização")
public String getDescricaoLocalizacao
() {
return descricaoLocalizacao
;
}
public void setDescricaoLocalizacao
(String descricaoLocalizacao
) {
this.
descricaoLocalizacao = StringUtil.
setarUpperCaseComTrim(descricaoLocalizacao
);
}
@Column
(name=
"ind_favorito")
@NotNull
(message=
"Obrigatório informar o indicador de favorito", groups=
{Cadastrar.
class, Alterar.
class})
public Boolean getIndicadorFavorito
() {
return indicadorFavorito
;
}
public void setIndicadorFavorito
(Boolean indicadorFavorito
) {
this.
indicadorFavorito = indicadorFavorito
;
}
@Column
(name=
"dat_cadastro")
@NotNull
(message=
"Obrigatório informar a data de cadastro", groups=
{Cadastrar.
class, Alterar.
class})
public Date getDataCadastro
() {
return dataCadastro
;
}
public void setDataCadastro
(Date dataCadastro
) {
this.
dataCadastro = dataCadastro
;
}
@Column
(name=
"ind_ativo", nullable=
false)
public Boolean getAtivo
() {
return ativo
;
}
public void setAtivo
(Boolean ativo
) {
this.
ativo = ativo
;
}
@Transient
public String getDescricaoDaMarca
() {
return VerificadorUtil.
naoEstaNulo(marca
)? marca.
getDescricao() :
null;
}
@Transient
public String getDescricaoComDescricaoTecnica
() {
return getDescricao
() + getDescricaoTecnicaComParenteses
();
}
@Transient
public String getDescricaoTecnicaComParenteses
() {
return VerificadorUtil.
naoEstaNuloOuVazio(getDescricaoTecnica
())? " (" + getDescricaoTecnica
() +
") " :
"";
}
@
Override
public int hashCode
() {
final int prime =
31;
int result =
1;
result = prime
* result +
((sequencial ==
null) ? 0 : sequencial.
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;
Modelo other =
(Modelo
) obj
;
if (sequencial ==
null) {
if (other.
sequencial !=
null)
return false;
} else if (!sequencial.
equals(other.
sequencial))
return false;
return true;
}
@
Override
public int compareTo
(Modelo modelo
) {
if (VerificadorUtil.
naoEstaNulo(modelo
)) {
int comparacao =
this.
getDescricaoDaMarca().
compareTo(modelo.
getDescricaoDaMarca());
if (comparacao
!=
0) return comparacao
;
return this.
getDescricao().
compareTo(modelo.
getDescricao());
}
return 0;
}
}