Listar Classes ligadas entre si

1 resposta
B

pussuo as classes abaixo usuario e requisicoes, onde
adiciono dados aos usuarios e suas respectivas requisições
o que eu quero é listar os Usuários e suas respectivas requisições tipo
User1
req 1
req 2
User 2
req 1
req 2
req 3
como posso fazer isso ?

public class Usuario {
    private String login;
    
    private String nome;
    
    private String senha;
    
    private List<Requisicao> requisicoes = new LinkedList<Requisicao>();

    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }

    public List<Requisicao> getRequisicoes() {
        return requisicoes;
    }

    public void setRequisicoes(List<Requisicao> requisicoes) {
        this.requisicoes = requisicoes;
    }
}

public class Requisicao {
    private Date data;
    
    private String descricao;

    public Date getData() {
        return data;
    }

    public void setData(Date data) {
        this.data = data;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

      //classe Main 
        List<Usuario> usuarios = new LinkedList<Usuario>();
        List<Requisicao> requisicoes = new LinkedList<Requisicao>();
        
        Usuario    usuario    = new Usuario();        
        
        //add user
        usuario.setNome("Fulano");
        usuario.setLogin("FULANO LOGIN");
        usuario.setSenha("FULANO SENHA");  
        //add requisicao
        Requisicao requisicao = new Requisicao();
        requisicao.setData(new Date());
        requisicao.setDescricao("FULANO DESCR01");
        requisicoes.add(requisicao);
       //add requisicao 
        requisicao = new Requisicao();
        requisicao.setData(new Date());
        requisicao.setDescricao("FULANO DESCR02");
        requisicoes.add(requisicao);      
        
        usuario.setRequisicoes(requisicoes);                
        usuarios.add(usuario);
                
        usuario = new Usuario();            
               
        usuario.setNome("Beltrano");
        usuario.setLogin("BELTRANO LOGIN");
        usuario.setSenha("BELTRANO SENHA");
        //add requisicao
        requisicao = new Requisicao();
        requisicao.setData(new Date());
        requisicao.setDescricao("BELTRANO DESCR01");
        requisicoes.add(requisicao);        
        //add requisicao        
        requisicao = new Requisicao();
        requisicao.setData(new Date());
        requisicao.setDescricao("BELTRANO DESCR02");        
        requisicoes.add(requisicao);        
        
        usuario.setRequisicoes(requisicoes);        
        usuarios.add(usuario);
        
        //aqui eu quero listar o nome do usuário e suas
        //requisições tipo
        FULANO
           FULANO DESCR 01
           FULANO DESCR 02
        BELTRANO
           BELTRANO DESCR 01
           BELTRANO DESCR 02
[/code]

1 Resposta

A

A ideia é essa mesmo!
Declarar um atributo de usuario que será um List de requisições.
Uma maneira de fazer é assim:

private List requisicoes; 
public void insereRequisicao(Requisicao r){
requisicoes.add(r);
}
public Requisicao getRequisicao(int i){
return (Requisicao) requisicoes.get(i);
}
public int getTamanhoRequisicoes(){
return List.size();
}

No List vc jogará os objetos de requisições!
O tipo dele será List mesmo!
Ai quando declarar seu usuario será:

Usuario usu= new Usuario;
usu.insereRequisicao(new Requisicao());

Para recuperar:

for (int i=0;i<usu.getTamanhoRequisicoes();i++){
 usu.getRequisicao(i);
}

Existem varias maneiras de implementar isso!
Isso é apenas um jeito, não estou falando que é o mais certo mais funciona!
Espero ter te ajudado!
Flow!!!

Criado 20 de agosto de 2005
Ultima resposta 23 de ago. de 2005
Respostas 1
Participantes 2