public Map<String, VProperty> getPropertiesMap(boolean includePrimaryType) { Map<String, VProperty> propertiesMap = new HashMap<String, VProperty>(); for (Map.Entry<String, VPropertyDefinitionI> entry : properties.entrySet()) { // TODO: Replace with VProperty Factory VProperty newProp = new XMLProperty(name, entry.getValue().getDefaultValue(), AbstractProperty.STRING_PREFIX); propertiesMap.put(entry.getKey(), newProp); } if (includePrimaryType) { propertiesMap.put( AbstractProperty.JCR_PRIMARYTYPE, new XMLProperty(AbstractProperty.JCR_PRIMARYTYPE, name, AbstractProperty.STRING_PREFIX)); } // also get supertype properties for (String supertype : supertypes) { VNodeDefinition vNodeDefinition = VNodeDefinition.getDefinition(supertype); if (vNodeDefinition != null) propertiesMap.putAll(vNodeDefinition.getPropertiesMap(false)); else { log.error("Could not get definition for " + supertype); } } return propertiesMap; }
public Map<String, String> getChildSuggestions() { Map<String, String> suggestions = new HashMap<String, String>(); // get supertype child suggestions for (String supertype : supertypes) { VNodeDefinition vNodeDefinition = VNodeDefinition.getDefinition(supertype); suggestions.putAll(vNodeDefinition.getChildSuggestions()); } // now put in this node's suggestions suggestions.putAll(childSuggestions); return suggestions; }