Blame |
Last modification |
View Log
| Download
| RSS feed
package br.com.sl.domain.model;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.Objects;
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.Table;
import javax.persistence.Transient;
import javax.validation.constraints.NotNull;
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.DataUtils;
import br.com.ec.core.util.VerificadorUtil;
import br.com.sl.domain.model.tipos.TipoSinal;
import br.com.sl.domain.model.tipos.TipoSituacaoSinal;
@
Entity
@Table
(name=
"slp_sinal", schema=
"sc_slp")
public class Sinal
implements Serializable {
private static final long serialVersionUID = 1L
;
private String codigo
; // SEQ_ATIVO#DATA#CONTADOR_CANDLE_REF#TIPO_PERIODO EXEMPLO: 1#27112025#32#M1
private Date dataHoraSinal
;
private String tipoSinal
; // C - COMPRAR / V - VENDER
private String tipoSituacaoSinal
; // A - ABERTO / F - FECHADO /
private Candle candleReferencia
;
private Candle candleGatilho1
;
private Candle candleGatilho2
;
private Candle candleGatilho3
;
private Candle candleGatilho4
;
private BigDecimal valorEntrada1
;
private BigDecimal valorEntrada2
;
private BigDecimal alvo1
;
private BigDecimal alvo2
;
private BigDecimal stop1
;
private BigDecimal stop2
;
public Sinal
() {}
@Id
@GeneratedValue
(strategy=GenerationType.
IDENTITY)
@Column
(name=
"cod_sinal", nullable=
false)
public String getCodigo
() {
return codigo
;
}
public void setCodigo
(String codigo
) {
this.
codigo = codigo
;
}
@Transient
public String montarCodigo
() {
String codigo =
null;
if (VerificadorUtil.
naoEstaNulo(getCandleReferencia
())) {
if (VerificadorUtil.
naoEstaNulo(getCandleReferencia
().
getAtivo())) {
codigo = codigo + getCandleReferencia
().
getAtivo().
getSequencial() +
"#";
codigo = codigo + DataUtils.
converterDataParaStringNoFormato(getDataHoraSinal
(),
"ddMMyyyy") +
"#";
codigo = codigo + getCandleReferencia
().
getContadorCandle() +
"#";
codigo = codigo + getCandleReferencia
().
getTipoPeriodoCandle();
}
}
return codigo
;
}
@Column
(name=
"dth_sinal")
@NotNull
(message=
"Obrigatório informar a data e hora do sinal", groups=
{Cadastrar.
class, Alterar.
class})
public Date getDataHoraSinal
() {
return dataHoraSinal
;
}
public void setDataHoraSinal
(Date dataHoraSinal
) {
this.
dataHoraSinal = dataHoraSinal
;
}
@Column
(name=
"tip_sinal")
@NotNull
(message =
"Parâmetro obrigatório não preenchido: Tipo do sinal", groups =
{Cadastrar.
class, Alterar.
class})
public String getTipoSinal
() {
return tipoSinal
;
}
public void setTipoSinal
(String tipoSinal
) {
this.
tipoSinal = tipoSinal
;
}
@Transient
public String getDescricaoDoSinal
() {
return VerificadorUtil.
naoEstaNulo(getTipoSinal
())? TipoSinal.
parse(getTipoSinal
()).
getDescricao() :
"";
}
@Column
(name=
"tip_situacao_sinal")
@NotNull
(message =
"Parâmetro obrigatório não preenchido: Tipo da situação do sinal", groups =
{Cadastrar.
class, Alterar.
class})
public String getTipoSituacaoSinal
() {
return tipoSituacaoSinal
;
}
public void setTipoSituacaoSinal
(String tipoSituacaoSinal
) {
this.
tipoSituacaoSinal = tipoSituacaoSinal
;
}
@Transient
public String getDescricaoDaSituacaoSinal
() {
return VerificadorUtil.
naoEstaNulo(getTipoSituacaoSinal
())? TipoSituacaoSinal.
parse(getTipoSituacaoSinal
()).
getDescricao() :
"";
}
@ManyToOne
@ForeignKey
(name =
"fk_sinal_candleref")
@JoinColumn
(name=
"seq_candleref", referencedColumnName=
"seq_candle")
public Candle getCandleReferencia
() {
return candleReferencia
;
}
public void setCandleReferencia
(Candle candleReferencia
) {
this.
candleReferencia = candleReferencia
;
}
@ManyToOne
@ForeignKey
(name =
"fk_sinal_candleg1")
@JoinColumn
(name=
"seq_candleg1", referencedColumnName=
"seq_candle")
public Candle getCandleGatilho1
() {
return candleGatilho1
;
}
public void setCandleGatilho1
(Candle candleGatilho1
) {
this.
candleGatilho1 = candleGatilho1
;
}
@ManyToOne
@ForeignKey
(name =
"fk_sinal_candleg2")
@JoinColumn
(name=
"seq_candleg2", referencedColumnName=
"seq_candle")
public Candle getCandleGatilho2
() {
return candleGatilho2
;
}
public void setCandleGatilho2
(Candle candleGatilho2
) {
this.
candleGatilho2 = candleGatilho2
;
}
@ManyToOne
@ForeignKey
(name =
"fk_sinal_candleg3")
@JoinColumn
(name=
"seq_candleg3", referencedColumnName=
"seq_candle")
public Candle getCandleGatilho3
() {
return candleGatilho3
;
}
public void setCandleGatilho3
(Candle candleGatilho3
) {
this.
candleGatilho3 = candleGatilho3
;
}
@ManyToOne
@ForeignKey
(name =
"fk_sinal_candleg4")
@JoinColumn
(name=
"seq_candleg4", referencedColumnName=
"seq_candle")
public Candle getCandleGatilho4
() {
return candleGatilho4
;
}
public void setCandleGatilho4
(Candle candleGatilho4
) {
this.
candleGatilho4 = candleGatilho4
;
}
@Column
(name=
"val_entrada1")
public BigDecimal getValorEntrada1
() {
return valorEntrada1
;
}
public void setValorEntrada1
(BigDecimal valorEntrada1
) {
this.
valorEntrada1 = valorEntrada1
;
}
@Column
(name=
"val_entrada2")
public BigDecimal getValorEntrada2
() {
return valorEntrada2
;
}
public void setValorEntrada2
(BigDecimal valorEntrada2
) {
this.
valorEntrada2 = valorEntrada2
;
}
@Column
(name=
"val_alvo1")
public BigDecimal getAlvo1
() {
return alvo1
;
}
public void setAlvo1
(BigDecimal alvo1
) {
this.
alvo1 = alvo1
;
}
@Column
(name=
"val_alvo2")
public BigDecimal getAlvo2
() {
return alvo2
;
}
public void setAlvo2
(BigDecimal alvo2
) {
this.
alvo2 = alvo2
;
}
@Column
(name=
"val_stop1")
public BigDecimal getStop1
() {
return stop1
;
}
public void setStop1
(BigDecimal stop1
) {
this.
stop1 = stop1
;
}
@Column
(name=
"val_stop2")
public BigDecimal getStop2
() {
return stop2
;
}
public void setStop2
(BigDecimal stop2
) {
this.
stop2 = stop2
;
}
@
Override
public int hashCode
() {
return Objects.
hash(codigo
);
}
@
Override
public boolean equals
(Object obj
) {
if (this == obj
)
return true;
if (obj ==
null)
return false;
if (getClass
() != obj.
getClass())
return false;
Sinal other =
(Sinal
) obj
;
return Objects.
equals(codigo, other.
codigo);
}
}