Dispositivo.java
unknown
java
2 months ago
4.0 kB
5
Indexable
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
import java.util.Objects;
import java.io.Serializable;
public abstract class Dispositivo implements Serializable {
private static final long serialVersionUID = 1L;
private String id;
private String marca;
private String modelo;
private double consumoBase;
private boolean estado;
private long tempoTotalUso;
private LocalDateTime dataUltimaAtivacao;
private int numAtivacoes;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getMarca() {
return marca;
}
public void setMarca(String marca) {
this.marca = marca;
}
public String getModelo() {
return modelo;
}
public void setModelo(String modelo) {
this.modelo = modelo;
}
public double getConsumoBase() {
return consumoBase;
}
public void setConsumoBase(double consumoBase) {
this.consumoBase = consumoBase;
}
public boolean getEstado() {
return estado;
}
public void ligar(LocalDateTime tempoAtual) {
if (!this.estado) {
this.estado = true;
this.dataUltimaAtivacao = tempoAtual;
this.numAtivacoes++;
}
}
public void desligar(LocalDateTime tempoAtual) {
if (this.estado && this.dataUltimaAtivacao != null) {
this.estado = false;
long minutosLigado = ChronoUnit.MINUTES.between(this.dataUltimaAtivacao, tempoAtual);
this.tempoTotalUso += minutosLigado;
}
}
public long getTempoTotalUso() {
return tempoTotalUso;
}
public double getConsumoEnergia() {
return (this.consumoBase * (this.tempoTotalUso / 60.0));
}
public int getNumAtivacoes() {
return numAtivacoes;
}
public Dispositivo() {
this.id = "";
this.marca = "";
this.modelo = "";
this.consumoBase = 0.0;
this.estado = false;
this.tempoTotalUso = 0;
this.numAtivacoes = 0;
}
public Dispositivo(String id, String marca, String modelo, double consumoBase) {
this.id = id;
this.marca = marca;
this.modelo = modelo;
this.consumoBase = consumoBase;
this.estado = false;
this.tempoTotalUso = 0;
this.numAtivacoes = 0;
}
public Dispositivo(Dispositivo umDispositivo) {
this.id = umDispositivo.getId();
this.marca = umDispositivo.getMarca();
this.modelo = umDispositivo.getModelo();
this.consumoBase = umDispositivo.getConsumoBase();
this.estado = umDispositivo.getEstado();
this.tempoTotalUso = umDispositivo.getTempoTotalUso();
this.dataUltimaAtivacao = umDispositivo.dataUltimaAtivacao;
this.numAtivacoes = umDispositivo.numAtivacoes;
}
@Override
public abstract Dispositivo clone();
protected String toStringBase() {
return "id='" + getId() + '\'' +
", marca='" + getMarca() + '\'' +
", modelo='" + getModelo() + '\'' +
", estado=" + (getEstado() ? "Ligado" : "Desligado") +
", numAtivacoes=" + numAtivacoes +
", tempoTotalUso=" + tempoTotalUso + "min";
}
@Override
public abstract String toString();
@Override
public boolean equals(Object o) {
if (this == o)
return true;
if (o == null || getClass() != o.getClass())
return false;
Dispositivo dis = (Dispositivo) o;
return this.id.equals(dis.id) &&
this.marca.equals(dis.marca) &&
this.modelo.equals(dis.modelo) &&
this.estado == dis.estado &&
this.numAtivacoes == dis.numAtivacoes &&
this.tempoTotalUso == dis.tempoTotalUso;
}
@Override
public int hashCode() {
return Objects.hash(id);
}
}Editor is loading...
Leave a Comment