
nl.tno.bim.nmd.services.BaseNmdDataService Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bimnmdservice Show documentation
Show all versions of bimnmdservice Show documentation
provides a REST api for retrieving nmd data from various data sources
The newest version!
package nl.tno.bim.nmd.services;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import nl.tno.bim.nmd.domain.NlsfbCode;
import nl.tno.bim.nmd.domain.NmdElement;
import nl.tno.bim.nmd.domain.NmdProductCard;
public interface BaseNmdDataService extends NmdDataService {
abstract List getData();
abstract void preLoadData();
@Override
default List getProductsForNLsfbCodes(Set codes) {
if (getData().size() == 0) {
preLoadData();
}
List res = getElementsForNLsfbCodes(codes).stream()
.flatMap(el -> el.getProducts().stream()).collect(Collectors.toList());
return res;
}
/**
* Quick lookup for preloaded elements
*/
default List getElementsForNLsfbCodes(Set codes) {
if (getData().size() == 0) {
preLoadData();
}
return getData().stream()
.filter(el -> codes.stream().anyMatch(code ->
code == null ? false : el.getNlsfbCode().isSubCategoryOf(code)
|| code.isSubCategoryOf(el.getNlsfbCode()))
)
.collect(Collectors.toList());
}
default List getProductCardsByIds(List ids) {
if (getData().size() == 0) {
preLoadData();
}
return getData().stream().flatMap(el -> el.getProducts().stream())
.filter(pc -> ids.contains((long)pc.getProductId()))
.collect(Collectors.toList());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy