public static CondensedDistribution getCondensedDistribution(Collection<Distribution> filteredDistributions,\r
CondensedDistributionRecipe recipe, List<Language> langs) {\r
ICondensedDistributionComposer composer;\r
+ if(recipe == null) {\r
+ throw new NullPointerException("parameter recipe must not be null");\r
+ }\r
try {\r
composer = recipe.newCondensedDistributionComposerInstance();\r
} catch (InstantiationException e) {\r
//1. order by PresenceAbsenceTerms
Map<PresenceAbsenceTerm, Collection<NamedArea>> byStatus = new HashMap<PresenceAbsenceTerm, Collection<NamedArea>>();
for(Distribution d : filteredDistributions) {
- if(!byStatus.containsKey(d.getStatus())) {
- byStatus.put(d.getStatus(), new HashSet<NamedArea>());
+ PresenceAbsenceTerm status = d.getStatus();
+ if(status == null) {
+ continue;
}
- byStatus.get(d.getStatus()).add(d.getArea());
+ if(!byStatus.containsKey(status)) {
+ byStatus.put(status, new HashSet<NamedArea>());
+ }
+ byStatus.get(status).add(d.getArea());
}
//2. build the area hierarchy
* @return
*/
private String statusSymbol(PresenceAbsenceTerm status) {
+ if(status == null) {
+ return "";
+ }
String symbol = statusSymbols.get(status.getUuid());
if(symbol == null) {
symbol = "";
}
- return symbol ;
+ return symbol;
}
private boolean isForeignStatus(PresenceAbsenceTerm status) {
Map<PresenceAbsenceTerm, Color> presenceAbsenceTermColors = EditGeoServiceUtilities.buildStatusColorMap(statusColorsString, termService);\r
\r
DistributionInfoDTO dto = geoService.composeDistributionInfoFor(parts, taxonUuid, subAreaPreference, statusOrderPreference,\r
- hideMarkedAreas, omitLevels, presenceAbsenceTermColors, LocaleContext.getLanguages(), DISTRIBUTION_INFO_INIT_STRATEGY, null);\r
+ hideMarkedAreas, omitLevels, presenceAbsenceTermColors, LocaleContext.getLanguages(), DISTRIBUTION_INFO_INIT_STRATEGY, recipe);\r
\r
mv.addObject(dto);\r
\r
return out.toString();
}
- class DistributionItem {
+ public class DistributionItem {
private PresenceAbsenceTerm status;