* @param distribution
* @param area
*/
- private static void addAreaToLayerMap(Map<String, Map<Integer,
- Set<Distribution>>> layerMap,
+ private static void addAreaToLayerMap(Map<String,
+ Map<Integer,Set<Distribution>>> layerMap,
List<PresenceAbsenceTerm> statusList,
Distribution distribution,
NamedArea area,
private static void addDistributionToStyleMap(Distribution distribution, Map<Integer, Set<Distribution>> styleMap,
List<PresenceAbsenceTerm> statusList) {
+
PresenceAbsenceTerm status = distribution.getStatus();
if (status != null) {
int style = statusList.indexOf(status);
Set<Distribution> distributionSet = styleMap.get(style);
if (distributionSet == null) {
- distributionSet = new HashSet<Distribution>();
+ distributionSet = new HashSet<>();
styleMap.put(style, distributionSet);
}
distributionSet.add(distribution);
boolean preferAggregated, boolean statusOrderPreference,
boolean subAreaPreference, boolean keepFallBackOnlyIfNoSubareaDataExists) {
- SetMap<NamedArea, Distribution> filteredDistributions = new SetMap<>(distributions.size());
+ SetMap<NamedArea, Distribution> filteredDistributionsPerArea = new SetMap<>(distributions.size());
Set<UUID> statusPositiveSet = null;
if (statusTree != null) {
statusPositiveSet = new HashSet<>();
}
}
- // assign distributions to the area and filter undefinedStatus
+ // assign distributions to the area and filter undefined status
for(Distribution distribution : distributions){
NamedArea area = distribution.getArea();
if(area == null) {
(distribution.getStatus() == null
|| !statusPositiveSet.contains(distribution.getStatus().getUuid()));
if (!filterOutStatus){
- filteredDistributions.putItem(area, distribution);
+ filteredDistributionsPerArea.putItem(area, distribution);
}
}
//TODO since using area tree this is only relevant if keepFallBackOnlyIfNoSubareaDataExists = true
// as the area tree should also exclude real hidden areas
// if(!CdmUtils.isNullSafeEmpty(fallbackAreaMarkerTypes)) {
- removeHiddenAndKeepFallbackAreas(areaTree, fallbackAreaMarkerTypes, filteredDistributions, keepFallBackOnlyIfNoSubareaDataExists);
+ removeHiddenAndKeepFallbackAreas(areaTree, fallbackAreaMarkerTypes, filteredDistributionsPerArea, keepFallBackOnlyIfNoSubareaDataExists);
// }
// -------------------------------------------------------------------
// 2) remove not computed distributions for areas for which computed
// distributions exists
if(preferAggregated) {
- handlePreferAggregated(filteredDistributions);
+ handlePreferAggregated(filteredDistributionsPerArea);
}
// -------------------------------------------------------------------
// 3) status order preference rule
if (statusOrderPreference) {
- SetMap<NamedArea, Distribution> tmpMap = new SetMap<>(filteredDistributions.size());
- for(NamedArea key : filteredDistributions.keySet()){
- tmpMap.put(key, filterByHighestDistributionStatusForArea(filteredDistributions.get(key)));
+ SetMap<NamedArea, Distribution> tmpMap = new SetMap<>(filteredDistributionsPerArea.size());
+ for(NamedArea key : filteredDistributionsPerArea.keySet()){
+ tmpMap.put(key, filterByHighestDistributionStatusForArea(filteredDistributionsPerArea.get(key)));
}
- filteredDistributions = tmpMap;
+ filteredDistributionsPerArea = tmpMap;
}
// -------------------------------------------------------------------
// 4) Sub area preference rule
if(subAreaPreference){
- handleSubAreaPreferenceRule(filteredDistributions, areaTree);
+ handleSubAreaPreferenceRule(filteredDistributionsPerArea, areaTree);
}
- return valuesOfAllInnerSets(filteredDistributions.values());
+ return valuesOfAllInnerSets(filteredDistributionsPerArea.values());
}
static TermTree<NamedArea> getAreaTree(Collection<Distribution> distributions,
/**
* Removes all distributions that have an area being a parent of
- * anothers distributions area. E.g. removes distribution for "Europe"
+ * another distribution area. E.g. removes distribution for "Europe"
* if a distribution for "France" exists in the list, where Europe
* is a direct parent for France.
*/
private static void handleSubAreaPreferenceRule(SetMap<NamedArea, Distribution> filteredDistributions,
TermTree<NamedArea> areaTree) {
- SetMap<NamedArea, NamedArea> parentMap = areaTree.getParentMap();
+ SetMap<NamedArea, NamedArea> childToParentsMap = areaTree.getParentMap();
Set<NamedArea> removeCandidatesArea = new HashSet<>();
for(NamedArea area : filteredDistributions.keySet()){
if(removeCandidatesArea.contains(area)){
continue;
}
- parentMap.get(area).forEach(parent->{
+ childToParentsMap.get(area).forEach(parent->{
if(parent != null && filteredDistributions.containsKey(parent)){
removeCandidatesArea.add(parent);
}