Lambda/Stream
complete/forEach
public List<Facultad> completeFiltradoFacultad(String query) {
suggestionsFacultad = new ArrayList<>();
List<Facultad> temp = new ArrayList<>();
try {
Boolean found = false;
query = query.trim();
if (query.length() < 1) {
return suggestionsFacultad;
}
String field = (String) UIComponent.getCurrentComponent(FacesContext.getCurrentInstance()).getAttributes().get("field");
temp = facultadRepository.findRegexInText(field, query, true, new Document(field, 1));
if (facultadList == null || facultadList.isEmpty()) {
if (!temp.isEmpty()) {
suggestionsFacultad = temp;
}
} else {
if (!temp.isEmpty()) {
temp.stream().forEach(f -> addFacultad(f));
}
}
} catch (Exception e) {
JsfUtil.errorMessage("completeFiltradoFacultad() " + e.getLocalizedMessage());
}
return suggestionsFacultad;
}// </editor-fold>
found /filter, findAny
// <editor-fold defaultstate="collapsed" desc="foundFacultad(Integer idfacultad)">
private Boolean foundFacultad(Integer idfacultad) {
Boolean _found = true;
try {
Facultad facultad = facultadList.stream() // Convert to steam
.filter(x -> x.getIdfacultad() == idfacultad) // we want "jack" only
.findAny() // If 'findAny' then return found
.orElse(null);
if (facultad == null) {
_found = false;
}
} catch (Exception e) {
JsfUtil.errorMessage("foundFacultad() " + e.getLocalizedMessage());
}
return _found;
}
// </editor-fold>
addFacultad
// <editor-fold defaultstate="collapsed" desc="addFacultad(Facultad facultad)">
private Boolean addFacultad(Facultad facultad) {
try {
if (!foundFacultad(facultad.getIdfacultad())) {
suggestionsFacultad.add(facultad);
}
} catch (Exception e) {
JsfUtil.errorMessage("addFacultad()" + e.getLocalizedMessage());
}
return false;
}
// </editor-fold>
Remover
private List<Carrera> removeByNotFoundFacultad(List<Carrera> carreraList) {
List<Carrera> list = new ArrayList<>();
try {
//1.recorre las facultades
//2.filtra las carreras de esa facultad
//3.crea una lista
//4. luego va agregando esa lista a la otra por cada facultad
if (facultadList == null || facultadList.isEmpty()) {
return list;
}
facultadList.forEach((f) -> {
List<Carrera> temp = carreraList.stream()
.parallel()
.filter(p -> p.getFacultad().getIdfacultad().equals(f.getIdfacultad()))
.collect(Collectors.toCollection(ArrayList::new));
temp.forEach((c) -> {
list.add(c);
});
});
} catch (Exception e) {
JsfUtil.errorMessage("removeByNotFoundFacultad() " + e.getLocalizedMessage());
}
return list;
}
// </editor-fold>
Last updated
Was this helpful?