Busca por tags usando java

0 respostas
L

Estou precisando, criar um programa que fará busca por tags e não estou conseguindo pensar em uma solução clara, gostaria que alguem podesse me ajudar. Já pensei em usar enums que representariam os dados de uma classe e quando passasse para uma busca eles buscariam os dados na classe de acordo com com os enums passados para a busca.

public class Curriculo
{
	private DadoPessoal dadoPessoal;
	
	public Curriculo()
	{
		dadoPessoal = new DadoPessoal();
	}
	
	public void setDadoPessoal(DadoPessoal dadoPessoal)
	{
		this.dadoPessoal = dadoPessoal;
	}
	
	public DadoPessoal getDadoPessoal()
	{
		return this.dadoPessoal;
	}
}
public class DadoPessoal
{
	private String nome;
	private String email;
	private String estadoCivil;
		
	public DadoPessoal()
	{
		nome = "Zé";
		email = "zé@dominio.com";
		estadoCivil = "Solteiro";
	}
	
	public String getNome()
	{
		return nome;
	}
	
	public void setNome(String nome)
	{
		this.nome = nome;
	}
	
	public String getEmail()
	{
		return email;
	}
	
	public void setEmail(String email)
	{
		this.email = email;
	}
	
	public String getEstadoCivil()
	{
		return estadoCivil;
	}
	
	public void setEstadoCivil(String estadoCivil)
	{
		this.estadoCivil = estadoCivil;
	}
	
}
public enum EnumDadoPessoal
{
	NOME("nome"),
	EMAIL("email"),
	CIVIL("estadoCivil");
	
	private String nomeCampo;
	
	private EnumDadoPessoal(String nomeCampo)
	{
		this.nomeCampo = nomeCampo;
	}
	
	public String getNomeCampo()
	{
		return this.nomeCampo;
	}
}
public class FrameBusca extends JFrame
{	
	public FrameBusca (Curriculo curriculo)
	{
		super("Teste Busca");
		this.setLayout(new GridBagLayout());
		
		// inicializa GridBagConstraints.
		c = new GridBagConstraints();
		
		// inicializa e adiciona JcomboBox.
		comboSelecao = new JComboBox(EnumDadoPessoal.values());
		c.gridx = 1;
		c.gridy = 0;
		add(comboSelecao, c);
		
		// inicializa e adiciona JTextField.
		textSelecao = new JTextField(15);
		c.gridx = 0;
		c.gridy = 1;
		add(textSelecao, c);
		
		// inicializa e adiciona JLabel.
		labelSelecao = new JLabel("Tipo de seleção: ");
		c.gridx = 0;
		c.gridy = 0;
		add(labelSelecao, c);
		
		// adiciona Handler ao JComboBox.
		Handler h = new Handler();
		comboSelecao.addActionListener(h);
		
		// recebe o curriculo.
		this.curriculo = curriculo;
	}
	
	private class Handler implements ActionListener
	{

		public void actionPerformed(ActionEvent e)
		{
			// obtem o nome do campo.
			EnumDadoPessoal ed = (EnumDadoPessoal) comboSelecao.getSelectedItem();
			String nomeCampo = ed.getNomeCampo();
			
			// obtem DadoPessoal do curriculo.
			DadoPessoal d = curriculo.getDadoPessoal();
			
			// obtem o campo com o nome especificado.
			try {
				Field f = d.getClass().getDeclaredField(nomeCampo);
				
			} catch (SecurityException e1) {
				e1.printStackTrace();
			} catch (NoSuchFieldException e1) {
				e1.printStackTrace();
			} catch (IllegalArgumentException e1) {
				e1.printStackTrace();
			
			}
		}
	}
}

Aqui nesse exemplo tenho um curriculo que agrega dadosPessoais e um enum que vai representar cada dado em dadosPessoais, assim na hora da busca vou passar os enum que eu quero pegar e usando “Field f = d.getClass().getDeclaredField(nomeCampo);” vou pegar o campo especificado, mas acho que isso ta meio capenga. Por favor alguem da uma luz!

Criado 11 de dezembro de 2008
Respostas 0
Participantes 1