/** * @see javax.jcr.nodetype.NodeTypeDefinition#getDeclaredPropertyDefinitions() */ public PropertyDefinition[] getDeclaredPropertyDefinitions() { QPropertyDefinition[] pda = ntd.getPropertyDefs(); PropertyDefinition[] propDefs = new PropertyDefinition[pda.length]; for (int i = 0; i < pda.length; i++) { propDefs[i] = ntMgr.getPropertyDefinition(pda[i]); } return propDefs; }
/** * @see javax.jcr.nodetype.NodeTypeDefinition#getDeclaredPropertyDefinitions() */ public PropertyDefinition[] getDeclaredPropertyDefinitions() { QPropertyDefinition[] pda = ntd.getPropertyDefs(); PropertyDefinition[] propDefs = new PropertyDefinition[pda.length]; for (int i = 0; i < pda.length; i++) { propDefs[i] = ntMgr.getPropertyDefinition(pda[i]); } return propDefs; }
/** * {@inheritDoc} */ public PropertyDefinition[] getDeclaredPropertyDefinitions() { QPropertyDefinition[] pda = ntd.getPropertyDefs(); PropertyDefinition[] propDefs = new PropertyDefinition[pda.length]; for (int i = 0; i < pda.length; i++) { propDefs[i] = new PropertyDefinitionImpl(pda[i], null, resolver, valueFactory); } return propDefs; } }
/** * @see javax.jcr.nodetype.NodeTypeDefinition#getDeclaredPropertyDefinitions() */ public PropertyDefinition[] getDeclaredPropertyDefinitions() { QPropertyDefinition[] pds = ntd.getPropertyDefs(); PropertyDefinition[] propDefs = new PropertyDefinition[pds.length]; for (int i = 0; i < pds.length; i++) { propDefs[i] = new PropertyDefinitionImpl(pds[i], resolver, valueFactory); } return propDefs; }
/** * @see javax.jcr.nodetype.NodeTypeDefinition#getDeclaredPropertyDefinitions() */ public PropertyDefinition[] getDeclaredPropertyDefinitions() { QPropertyDefinition[] pds = ntd.getPropertyDefs(); PropertyDefinition[] propDefs = new PropertyDefinition[pds.length]; for (int i = 0; i < pds.length; i++) { propDefs[i] = new PropertyDefinitionImpl(pds[i], resolver, valueFactory); } return propDefs; }
/** * {@inheritDoc} */ public PropertyDefinition[] getDeclaredPropertyDefinitions() { QPropertyDefinition[] pda = ntd.getPropertyDefs(); PropertyDefinition[] propDefs = new PropertyDefinition[pda.length]; for (int i = 0; i < pda.length; i++) { propDefs[i] = new PropertyDefinitionImpl(pda[i], null, resolver, valueFactory); } return propDefs; } }
protected final QPropertyDefinition lookupPropDef(Name nodeTypeName, Name propName) throws RepositoryException { QPropertyDefinition[] propDefs = stateMgr.getNodeTypeRegistry().getNodeTypeDef(nodeTypeName).getPropertyDefs(); int i; for(i=0; i<propDefs.length; i++) if(propDefs[i].getName().equals(propName)) { return propDefs[i]; } throw new RepositoryException("required property "+propName+" in nodetype "+nodeTypeName+" not or badly defined"); }
/** * Determine if a type definition itself is trivial: adding no additional type constraints other than its 'marker' name. * * Note: this ignores 'inherited' constraints from its supertypes because the check is done against all added supertype * already, including those inherited. * * @param def the type definition to check * @return true if the type definition (itself) is trivial */ protected boolean isTrivialTypeDef(QNodeTypeDefinition def) { return !def.hasOrderableChildNodes() && def.getPrimaryItemName() == null && def.getPropertyDefs().length == 0 && def.getChildNodeDefs().length == 0; } }
public void nodeTypeRegistered(Name ntName) { try { QNodeTypeDefinition def = registry.getNodeTypeDef(ntName); QPropertyDefinition[] propDefs = def.getPropertyDefs(); synchronized (typeMapping) { for (QPropertyDefinition propDef : propDefs) { int type = propDef.getRequiredType(); if (!propDef.definesResidual() && type != PropertyType.UNDEFINED) { Name name = propDef.getName(); // only remember defined property types TypeMapping[] types = typeMapping.get(name); if (types == null) { types = new TypeMapping[1]; } else { TypeMapping[] tmp = new TypeMapping[types.length + 1]; System.arraycopy(types, 0, tmp, 0, types.length); types = tmp; } types[types.length - 1] = new TypeMapping(ntName, type, propDef.isMultiple()); typeMapping.put(name, types); } } } } catch (NoSuchNodeTypeException e) { log.error("Unable to get newly registered node type definition for name: " + ntName); } }
public void nodeTypeRegistered(Name ntName) { try { QNodeTypeDefinition def = registry.getNodeTypeDef(ntName); QPropertyDefinition[] propDefs = def.getPropertyDefs(); synchronized (typeMapping) { for (QPropertyDefinition propDef : propDefs) { int type = propDef.getRequiredType(); if (!propDef.definesResidual() && type != PropertyType.UNDEFINED) { Name name = propDef.getName(); // only remember defined property types TypeMapping[] types = typeMapping.get(name); if (types == null) { types = new TypeMapping[1]; } else { TypeMapping[] tmp = new TypeMapping[types.length + 1]; System.arraycopy(types, 0, tmp, 0, types.length); types = tmp; } types[types.length - 1] = new TypeMapping(ntName, type, propDef.isMultiple()); typeMapping.put(name, types); } } } } catch (NoSuchNodeTypeException e) { log.error("Unable to get newly registered node type definition for name: " + ntName); } }
/** Test for node type property definitions. */ public void testPropertyNodeType() { QNodeTypeDefinition def = getNodeType("propertyNodeType"); assertEquals("propertyNodeType propertyDefs", 13, def.getPropertyDefs().length); }
/** * Copy constructor. * * @param nt the qualified node type definition. */ public QNodeTypeDefinitionImpl(QNodeTypeDefinition nt) { this(nt.getName(), nt.getSupertypes(), nt.isMixin(), nt.hasOrderableChildNodes(), nt.getPrimaryItemName(), nt.getPropertyDefs(), nt.getChildNodeDefs()); }
/** * Returns the named property definition from the named node type * definition. If either of the definitions do not exist, an assertion * failure is generated. * <p> * If the given property name is <code>null</code>, then the residual * property definition (if one exists) is returned. * * @param typeName node type name * @param propertyName property name, or <code>null</code> * @return property definition */ private QPropertyDefinition getPropDef(String typeName, String propertyName) { Name name; if (propertyName != null) { name = FACTORY.create(TEST_NAMESPACE, propertyName); } else { name = NameConstants.ANY_NAME; } QNodeTypeDefinition def = getNodeType(typeName); QPropertyDefinition[] defs = def.getPropertyDefs(); for (int i = 0; i < defs.length; i++) { if (name.equals(defs[i].getName())) { return defs[i]; } } throw new AssertionFailedError( "Property " + propertyName + " does not exist"); }
for (QPropertyDefinition qpd : def.getPropertyDefs()) { PropertyDefinitionTemplate pdt = createPropertyDefinitionTemplate(valueFactory, ntMgr, qpd); propertyDefinitionTemplates.add(pdt);
/** * Copy constructor. * * @param nt the node type definition. */ public QNodeTypeDefinitionImpl(QNodeTypeDefinition nt) { this(nt.getName(), nt.getSupertypes(), nt.getSupportedMixinTypes(), nt.isMixin(), nt.isAbstract(), nt.isQueryable(), nt.hasOrderableChildNodes(), nt.getPrimaryItemName(), nt.getPropertyDefs(), nt.getChildNodeDefs()); }
/** * Copy constructor. * * @param nt the node type definition. */ public QNodeTypeDefinitionImpl(QNodeTypeDefinition nt) { this(nt.getName(), nt.getSupertypes(), nt.getSupportedMixinTypes(), nt.isMixin(), nt.isAbstract(), nt.isQueryable(), nt.hasOrderableChildNodes(), nt.getPrimaryItemName(), nt.getPropertyDefs(), nt.getChildNodeDefs()); }
/** Test for node type item definitions. */ public void testItemNodeType() { QNodeTypeDefinition def = getNodeType("itemNodeType"); assertEquals("itemNodeType primaryItemName", FACTORY.create(TEST_NAMESPACE, "emptyItem"), def.getPrimaryItemName()); assertEquals("itemNodeType propertyDefs", 10, def.getPropertyDefs().length); QPropertyDefinition pdef = getPropDef("itemNodeType", null); assertTrue("itemNodeType wildcard property", pdef.definesResidual()); }
/** * Create a new JCR node type definition from the given * <code>QNodeTypeDefinition</code>. * * @param qNtd A SPI node type definition. * @return the corresponding JCR node type definition. * @throws RepositoryException if an error occurs. */ @SuppressWarnings("unchecked") public NodeTypeDefinition create(QNodeTypeDefinition qNtd) throws RepositoryException { NodeTypeTemplate nt = ntMgr.createNodeTypeTemplate(); nt.setName(getJCRName(qNtd.getName())); nt.setDeclaredSuperTypeNames(getJCRNames(qNtd.getSupertypes())); nt.setAbstract(qNtd.isAbstract()); nt.setMixin(qNtd.isMixin()); nt.setOrderableChildNodes(qNtd.hasOrderableChildNodes()); nt.setPrimaryItemName(getJCRName(qNtd.getPrimaryItemName())); nt.setQueryable(qNtd.isQueryable()); List nodeDefs = nt.getNodeDefinitionTemplates(); for (QNodeDefinition qNd: qNtd.getChildNodeDefs()) { nodeDefs.add(create(qNd)); } List propDefs = nt.getPropertyDefinitionTemplates(); for (QPropertyDefinition qPd: qNtd.getPropertyDefs()) { propDefs.add(create(qPd)); } return nt; }
/** Test for the empty node type. */ public void testEmptyNodeType() { QNodeTypeDefinition def = getNodeType("emptyNodeType"); assertNotNull("emptyNodeType exists", def); assertEquals("emptyNodeType mixin", false, def.isMixin()); assertEquals("emptyNodeType hasOrderableChildNodes", false, def.hasOrderableChildNodes()); assertEquals("emptyNodeType primaryItemName", null, def.getPrimaryItemName()); assertEquals("emptyNodeType childNodeDefs", 0, def.getChildNodeDefs().length); assertEquals("emptyNodeType propertyDefs", 0, def.getPropertyDefs().length); }
QPropertyDefinition[] propDefs = ntDef.getPropertyDefs(); for (int i = 0; i < propDefs.length; i++) { VirtualNodeState pdState = createPropertyDefState(ntState, propDefs[i], ntDef, i);