Manter um Historico de informações

2 respostas
S

Olá, estou tendo dificuldade em como criar para que a minha classe Chefe mantenha um historico do status que o empregado envia para ele. Este chefe deve manter o historico atual e anterior que ele recebeu do empregado. Exemplificando:
TAM Tempo
5 434
3 454

Eu havia pensado em colcoar em uma lista estas informações e o mais atual colocar em primeiro com um addFirst, talvez, mas eu nao sei como fazer isso. E se no caso eu tiver mais uma informação neste Status(TAM, TEMPO, CAPACIDADE) como fazer? Alguem pode me auxliar … OBRIGADO

public class Chefe {

	...

	public Chefe() {
		LinkedList l = new LinkedList();

	}

	public status(int tam, long dateAtual) {
		this.tam = tam;
		this.dateAtual = dateAtual;
	}			
}

public class Empregado extend Thread {

	BlockingQueue<Integer> trabalho;

	public Empregado (Chefe chefe) {
		this.trabalho = new LinkedBlockingQueue<Integer>();
		this.chefe = chefe;
	}

	public void run() {
		int i = this.trablaho.take();
		....
		this.chefe.status(this.trabalho.size(), System.currentTimeMillis());
		...
	}
}

2 Respostas

Nicolas_Fernandes

Olá, estou tendo dificuldade em como criar para que a minha classe Chefe mantenha um historico do status que o empregado envia para ele. Este chefe deve manter o historico atual e anterior que ele recebeu do empregado. Exemplificando:
TAM Tempo
5 434
3 454

Eu havia pensado em colcoar em uma lista estas informações e o mais atual colocar em primeiro com um addFirst, talvez, mas eu nao sei como fazer isso. E se no caso eu tiver mais uma informação neste Status(TAM, TEMPO, CAPACIDADE) como fazer? Alguem pode me auxliar .. OBRIGADO

E aí, spiderman!
Você pode fazer algo do tipo (vê se eu entendi o que você quer):

1. Você cria uma classe que será o funcionário.
public class Funcionario {

   private String nome;
   private String cargaHoraria;

   // getters e setters omitidos.
}
2. Você cria uma classe que será o status.
public class Status {

   private int tamanho;
   private DateTime horarioAdicao;
   private int capacidade;

   // getters e setters omitidos.
}
3. Você cria uma classe que armazena determinado status de determinado funcionário.
public class StatusFuncionario {

   private Funcionario funcionario;
   private Status status;

   // getters e setters omitidos.
}
4. E aí cria uma classe que é o chefe que armazena os status de seus funcionários.
public class Chefe{

   private String nome;
   private List<StatusFuncionario> statusFuncionarios;

   public void adicionarStatusFuncionario(StatusFuncionario statusFuncionario) {
   
       statusFuncionarios.add(statusFuncionario);
   }
   // getters e setters omitidos.
}
5. A cada alteração dos status dos funcionários, você adiciona na lista.
chefe.adicionarStatusFuncionario( /*seu objeto que contém o status do funcionário. */ );
6. Como o status mais atual é o último adicionado, você pode recuperar os status com um método assim:
public Status recuperarStatusAtual(List<StatusFuncionario> statusFuncionarios) {

    Collections.reverse(statusFuncionario);
    Iterator<StatusFuncionario> iteratorStatus =  statusFuncionario.iterator();
    return iteratorStatus.next();
}

//ou

public Status recuperarStatusAtual(List<StatusFuncionario> statusFuncionarios) {

    Iterator<StatusFuncionario> iteratorStatus =  statusFuncionario.iterator();
    StatusFuncionario statusFuncionario = new StatusFuncionario();

    while (iteratorStatus.hasNext()) {
        statusFuncionario = iteratorStatus.next();
    }
    return statusFuncionario;
}

Daí você adapta no seu código... Que acha?

R

Hibernate Envers lhe ajudaria?

Criado 24 de julho de 2011
Ultima resposta 24 de jul. de 2011
Respostas 2
Participantes 3