private PropertyDefinition searchPropertyDefinition(final NodeType nodeType, final String name) { if ( nodeType.getPropertyDefinitions() != null ) { for(final PropertyDefinition pd : nodeType.getPropertyDefinitions()) { if ( pd.getName().equals(name) ) { return pd; } } } // SLING-2877: // no need to search property definitions of super types, as nodeType.getPropertyDefinitions() // already includes those. see javadoc of {@link NodeType#getPropertyDefinitions()} return null; }
public static boolean hasPropertyDefinition(NodeType primaryType, NodeType[] mixinTypes, String propName) { return hasPropertyDefinition(Stream.concat(Arrays.stream(primaryType.getPropertyDefinitions()), Arrays.stream(mixinTypes).flatMap(mixin -> Arrays.stream(mixin.getPropertyDefinitions()))), propName); }
public static PropertyDefinition getPropertyDefinition(NodeType nodeType, String propertyName) throws RepositoryException { for (PropertyDefinition def : nodeType.getPropertyDefinitions()) { if (def.getName().equals(propertyName)) { return def; } } return null; }
/** {@inheritDoc} */ public RemotePropertyDefinition[] getPropertyDefs() throws RemoteException { PropertyDefinition[] defs = type.getPropertyDefinitions(); return getRemotePropertyDefArray(defs); }
private static PropertyDefinition getPropertyDefinition(NodeType nodetype, String propertyPath) { PropertyDefinition[] definitions = nodetype.getPropertyDefinitions(); for (PropertyDefinition propDef : definitions) { if (propDef.getName().equals(propertyPath)) { return propDef; } } return null; }
public static PropertyDefinition getPropertyDefinition(NodeType nodeType, String propertyName) throws RepositoryException { for (PropertyDefinition def : nodeType.getPropertyDefinitions()) { if (def.getName().equals(propertyName)) { return def; } } return null; }
public static PropertyDefinition getPropertyDefinition(NodeType nodeType, String propertyName) throws RepositoryException { for (PropertyDefinition def : nodeType.getPropertyDefinitions()) { if (def.getName().equals(propertyName)) { return def; } } return null; }
public static boolean hasPropertyDefinition(NodeType type, String propName) { return hasPropertyDefinition(Arrays.stream(type.getPropertyDefinitions()), propName); }
private Map<String, PropertyValue> getColumnMap(String selector, NodeType type) throws RepositoryException { Map<String, PropertyValue> map = new LinkedHashMap<String, PropertyValue>(); for (PropertyDefinition definition : type.getPropertyDefinitions()) { String name = definition.getName(); if (!definition.isMultiple() && !"*".equals(name)) { // TODO: Add proper quoting map.put(selector + "." + name, qomFactory.propertyValue(selector, name)); } } return map; }
private Map<String, PropertyValue> getColumnMap(String selector, NodeType type) throws RepositoryException { Map<String, PropertyValue> map = new LinkedHashMap<String, PropertyValue>(); for (PropertyDefinition definition : type.getPropertyDefinitions()) { String name = definition.getName(); if (!definition.isMultiple() && !"*".equals(name)) { // TODO: Add proper quoting map.put(selector + "." + name, qomFactory.propertyValue(selector, name)); } } return map; }
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; }
protected PropertyDefinition findDefinition(NodeType nodeType, String name, int type, boolean multiValued) { PropertyDefinition best = null; for (PropertyDefinition pdef : nodeType.getPropertyDefinitions()) { if (pdef.getName().equals(name) && pdef.isMultiple() == multiValued) { if ((!"*".equals(name) && type == JcrPropertyValueModel.NO_TYPE) || pdef.getRequiredType() == type) { return pdef; } else if (pdef.getRequiredType() == PropertyType.UNDEFINED) { best = pdef; } } } return best; }
public static PropertyDefinition[] getAggregatedPropertyDefinitionss(Node node) throws RepositoryException { Set<PropertyDefinition> pDefs = newHashSet(); PropertyDefinition pd[] = node.getPrimaryNodeType().getPropertyDefinitions(); pDefs.addAll(Arrays.asList(pd)); NodeType[] mixins = node.getMixinNodeTypes(); for (NodeType mixin : mixins) { pd = mixin.getPropertyDefinitions(); pDefs.addAll(Arrays.asList(pd)); } return pDefs.toArray(new PropertyDefinition[pDefs.size()]); }
private boolean canSetProperty(NodeType nodeType, String propertyName, int propertyType, boolean isMultiple) { PropertyDefinition propDefs[] = nodeType.getPropertyDefinitions(); for (int i = 0; i < propDefs.length; i++) { if (propDefs[i].getName().equals(propertyName) || propDefs[i].getName().equals("*")) { if ((propDefs[i].getRequiredType() == propertyType || propDefs[i].getRequiredType() == PropertyType.UNDEFINED) && propDefs[i].isMultiple() == isMultiple) { return true; } } } return false; }
protected PropertyDefinition findDefinition(NodeType nodeType, String name, int type, boolean multiValued) { PropertyDefinition best = null; for (PropertyDefinition pdef : nodeType.getPropertyDefinitions()) { if (pdef.getName().equals(name) && pdef.isMultiple() == multiValued) { if (type == PropertyType.UNDEFINED || type == JcrPropertyValueModel.NO_TYPE || pdef.getRequiredType() == type) { return pdef; } else if (pdef.getRequiredType() == PropertyType.UNDEFINED) { best = pdef; } } } return best; }
@Override public FieldDescriptor getFieldDescriptor(String name) { try { for (PropertyDefinition def : this.nodeType.getPropertyDefinitions()) { if (def.getName().equalsIgnoreCase(name)) { Node descrNode = this.typeNode.getNode(def.getName()); return new JcrFieldDescriptor(descrNode, def); } } return null; } catch (RepositoryException e) { throw new MetadataRepositoryException("Unable to get property descriptor for type: " + this.nodeType.getName(), e); } }
private JcrPropertyDefinition propertyDefinitionFor( NodeType nodeType, Name propertyName ) { PropertyDefinition propertyDefs[] = nodeType.getPropertyDefinitions(); String property = propertyName.getString(context.getNamespaceRegistry()); for (int i = 0; i < propertyDefs.length; i++) { if (propertyDefs[i].getName().equals(property)) { return (JcrPropertyDefinition)propertyDefs[i]; } } throw new IllegalStateException("Could not find property definition name " + property + " for type " + nodeType.getName() + ". Test setup is invalid."); }
private void checkConstraints( NodeType nodeType, Name propertyName, String[] expectedConstraints ) { PropertyDefinition propertyDefs[] = nodeType.getPropertyDefinitions(); String property = propertyName.getString(context.getNamespaceRegistry()); String[] constraints = null; for (int i = 0; i < propertyDefs.length; i++) { if (propertyDefs[i].getName().equals(property)) { constraints = propertyDefs[i].getValueConstraints(); break; } } if (!Arrays.equals(constraints, expectedConstraints)) { throw new IllegalStateException("Unexpected constraints for property: " + property); } }
private static void assertAutoCreatedItems(@NotNull Tree authorizableTree, @NotNull String ntName, @NotNull Root root) throws Exception { NodeType repUser = ReadOnlyNodeTypeManager.getInstance(root, NamePathMapper.DEFAULT).getNodeType(ntName); for (NodeDefinition cnd : repUser.getChildNodeDefinitions()) { if (cnd.isAutoCreated()) { assertTrue(authorizableTree.hasChild(cnd.getName())); } } for (PropertyDefinition pd : repUser.getPropertyDefinitions()) { if (pd.isAutoCreated()) { assertTrue(authorizableTree.hasProperty(pd.getName())); } } } }
@Test public void customNodeTypesAreRegistered() throws RepositoryException { final JackrabbitSession adminSession = createAdminSession(); final NodeTypeManager nodeTypeManager = adminSession.getWorkspace().getNodeTypeManager(); final NodeType testFolderNodeType = nodeTypeManager.getNodeType("test:Folder"); final NodeDefinition[] cnd = testFolderNodeType.getChildNodeDefinitions(); final PropertyDefinition[] pd = testFolderNodeType.getPropertyDefinitions(); assertEquals("More than one child node definition", 1, cnd.length); assertEquals("Incorrect default primary type", "test:Folder", cnd[0].getDefaultPrimaryTypeName()); assertEquals("More than two property definitions", 4, pd.length); adminSession.logout(); } }