protected void setUpPhenomenaForOffering(OfferingEntity offering, ProcedureEntity procedure,
SosObservationOffering sosOffering, Session session) throws
DataAccessException {
Map<String, String> map = new HashMap<>();
map.put(IoParameters.OFFERINGS, Long.toString(offering.getId()));
map.put(IoParameters.PROCEDURES, Long.toString(procedure.getId()));
List<PhenomenonEntity> observableProperties = new PhenomenonDao(session)
.getAllInstances(new DbQuery(IoParameters.createFromSingleValueMap(map)));
Collection<String> phenomenons = new LinkedList<>();
Map<String, Collection<String>> phens4CompPhens = new HashMap<>(observableProperties.size());
observableProperties.forEach(observableProperty -> {
if (!observableProperty.hasChildren() && !observableProperty.hasParents()) {
phenomenons.add(observableProperty.getIdentifier());
} else if (observableProperty.hasChildren() && !observableProperty.hasParents()) {
phens4CompPhens.put(observableProperty.getIdentifier(),
observableProperty.getChildren().stream().map(PhenomenonEntity::getIdentifier)
.collect(toCollection(TreeSet::new)));
}
});
sosOffering.setObservableProperties(phenomenons);
sosOffering.setPhens4CompPhens(phens4CompPhens);
}