package org.etk.orm.plugins.jcr; import java.util.HashMap; import java.util.Map; import javax.jcr.nodetype.NodeType; import javax.jcr.nodetype.PropertyDefinition; import org.etk.orm.plugins.jcr.type.PropertyDefinitionInfo; /** * <p> * Meta information about a node type. * </p> * <p> * This object does not hold a reference to an existing node type object. * </p> */ public class NodeTypeInfo { /** . */ private final String name; /** . */ private final Map<String, PropertyDefinitionInfo> propertyDefinitions; public NodeTypeInfo(NodeType nodeType) { Map<String, PropertyDefinitionInfo> propertyDefinitions = new HashMap<String, PropertyDefinitionInfo>(); for (PropertyDefinition propertyDefinition : nodeType.getPropertyDefinitions()) { PropertyDefinitionInfo propertyDefinitionInfo = new PropertyDefinitionInfo(propertyDefinition); propertyDefinitions.put(propertyDefinitionInfo.getName(), propertyDefinitionInfo); } // this.name = nodeType.getName(); this.propertyDefinitions = propertyDefinitions; } public String getName() { return name; } public PropertyDefinitionInfo getPropertyDefinitionInfo(String name) { return propertyDefinitions.get(name); } public PropertyDefinitionInfo findPropertyDefinition(String propertyName) { PropertyDefinitionInfo propertyDefinitionInfo = getPropertyDefinitionInfo(propertyName); if (propertyDefinitionInfo == null) { return getPropertyDefinitionInfo("*"); } return propertyDefinitionInfo; } }