@Override public String getLabelFromMessage(String message, WebRenderer renderer) { Map<String, String> propertyMap = new HashMap<String, String>(); PropertyStringParser propertyParser = new PropertyStringParser(message); // Build the map with resolved properties Set<String> parsedProperties = propertyParser.parseProperties(); for (String propertyName : parsedProperties) { NabuccoProperty resolvedProperty = this.resolver.resolveProperty(propertyName); if (resolvedProperty == null) { propertyMap.put(propertyName, DEFAULT_LABEL); continue; } Object propertyInstance = resolvedProperty.getInstance(); if (propertyInstance instanceof Basetype) { String value = renderer.render((NType) propertyInstance, resolvedProperty); propertyMap.put(propertyName, value); } else if (propertyInstance instanceof Enumeration) { String value = renderer.render((NType) propertyInstance, resolvedProperty); propertyMap.put(propertyName, value); } else if (propertyInstance instanceof Code) { String value = renderer.render((NType) propertyInstance, resolvedProperty); propertyMap.put(propertyName, value); } else { propertyMap.put(propertyName, DEFAULT_LABEL); } } String retVal = MessageFormatter.format(message, propertyMap); return retVal; }
@Override public String getLabel(String propertyPath, WebRenderer renderer) { NabuccoProperty property = this.resolver.resolveProperty(propertyPath); if (property == null) { return DEFAULT_LABEL; } Object instance = property.getInstance(); if (!(instance instanceof NType)) { return DEFAULT_LABEL; } return renderer.render((NType) instance, property); }