In my example I have two classes that are SetorInteresse
and Vaga
, below follows the structure of the two:
Sector Class Interests:
public class SetorInteresse {
private List<String> setores;
public SetorInteresse(List<String> setores) {
this.setores = setores;
}
public SetorInteresse() { }
public void addPalavra(String palavra) { setores.add(palavra); }
public void removePalavra(String palavra) { setores.remove(palavra); }
public List<String> getSetores() { return setores; }
}
Class Vague:
public class Vaga {
private String tituloVaga;
private String setor;
private String funcao;
public Vaga(String tituloVaga, String setor, String funcao) {
this.tituloVaga = tituloVaga;
this.setor = setor;
this.funcao = funcao;
}
public Vaga() { }
public String getDescricaoVaga() {
return tituloVaga;
}
public void setDescricaoVaga(String tituloVaga) { this.tituloVaga = tituloVaga; }
public String getSetor() { return setor; }
public void setSetor(String setor) { this.setor = setor; }
public String getFuncao() { return funcao; }
public void setFuncao(String funcao) { this.funcao = funcao; }
}
I have two methods below that populate the variable vagas
of type List<Vaga>
and the other that populate the setores
attribute of object SetorInteresse
see:
Method that populates variable vagas
:
List<Vaga> vagas = criaVagas();
...
static List<Vaga> criaVagas() {
List<Vaga> vagas = new ArrayList<>();
vagas.add(new Vaga("Desenvolvedor Java", "Tecnologia da Informação", "Desenvolvedor"));
vagas.add(new Vaga("Desenvolvedor C# e Web", "Tecnologia da Informação", "Desenvolvedor"));
vagas.add(new Vaga("Motorista Carreteiro", "Logistica", "Motorista"));
vagas.add(new Vaga("Gerente de Sistemas", "Tecnologia da Informação", "Desenvolvedor"));
vagas.add(new Vaga("Estágiario Tecnologia da Informação", "Tecnologia da Informação", "Estágiario"));
vagas.add(new Vaga("Analista de Sistemas", "Tecnologia da Informação", "Analista"));
vagas.add(new Vaga("Suporte Técnico", "Suporte", "Suporte"));
vagas.add(new Vaga("Gerente Comercial", "Departamento Administrativo", "Gerente"));
vagas.add(new Vaga("Assistente de Recursos Humanos", "Recursos Humanos RH", "Aissistente"));
return vagas;
}
Method that populates the setores
attribute:
SetorInteresse setorInteresse = criaSetorInteresse();
...
static SetorInteresse criaSetorInteresse() {
SetorInteresse setorInteresse = new SetorInteresse();
setorInteresse.addPalavra("Desenvolvimento de programas");
setorInteresse.addPalavra("Tecnologia da informação e serviços");
setorInteresse.addPalavra("Análise de sistemas");
return setorInteresse;
}
Based on the data that was entered into the two variables vagas
and setorInteresse
I would like to know if there is any way I could create a filter that returns me only the objects of the vagas
list in which the value of the setor
attribute of the Vaga
object relates to any of the words or phrase of the setores
attribute or is there any alternative to this?
Example, if I have the following value in my sectors attribute:
Program Development
I would get all objects of type Vaga
where the value of the setor
attribute is related to Desenvolvimento de programas
, in this case the vacancies I would receive would be:
Java Developer
C # and Web Developer Systems Manager
Information Technology Internship
Systems Analyst
Technical Support
So the vacancies displayed would be according to the interests defined in the setores
attribute.
Is there a way to create a filter that returns those results, or is there a library that does this for me. And also I would like to know what criteria I should define in the relationship between the words / phrases and how to define them, should it be necessary to do this?