private static boolean isAutoCreated(Name propertyName, EffectiveNodeType ent) { for (QPropertyDefinition def : ent.getAutoCreatePropDefs()) { if (def.getName().equals(propertyName)) { return true; } } return false; }
private static boolean isAutoCreated(Name propertyName, EffectiveNodeType ent) { for (QPropertyDefinition def : ent.getAutoCreatePropDefs()) { if (def.getName().equals(propertyName)) { return true; } } return false; }
private QPropertyDefinitionId(QPropertyDefinition def) { declaringNodeType = def.getDeclaringNodeType(); name = def.getName(); }
private QPropertyDefinitionId(QPropertyDefinition def) { declaringNodeType = def.getDeclaringNodeType(); name = def.getName(); }
/** * @see QValueFactory#computeAutoValues(org.apache.jackrabbit.spi.QPropertyDefinition) */ public QValue[] computeAutoValues(QPropertyDefinition propertyDefinition) throws RepositoryException { Name declaringNT = propertyDefinition.getDeclaringNodeType(); Name name = propertyDefinition.getName(); if (NameConstants.JCR_UUID.equals(name) && NameConstants.MIX_REFERENCEABLE.equals(declaringNT)) { // jcr:uuid property of a mix:referenceable return new QValue[]{create(UUID.randomUUID().toString(), PropertyType.STRING)}; } else { throw new RepositoryException("createFromDefinition not implemented for: " + name); } }
/** * @see QValueFactory#computeAutoValues(org.apache.jackrabbit.spi.QPropertyDefinition) */ public QValue[] computeAutoValues(QPropertyDefinition propertyDefinition) throws RepositoryException { Name declaringNT = propertyDefinition.getDeclaringNodeType(); Name name = propertyDefinition.getName(); if (NameConstants.JCR_UUID.equals(name) && NameConstants.MIX_REFERENCEABLE.equals(declaringNT)) { // jcr:uuid property of a mix:referenceable return new QValue[]{create(UUID.randomUUID().toString(), PropertyType.STRING)}; } else { throw new RepositoryException("createFromDefinition not implemented for: " + name); } }
/** * @see QValueFactory#computeAutoValues(QPropertyDefinition) */ public QValue[] computeAutoValues(QPropertyDefinition propertyDefinition) throws RepositoryException { Name nodeType = propertyDefinition.getDeclaringNodeType(); Name name = propertyDefinition.getName(); if (NameConstants.NT_HIERARCHYNODE.equals(nodeType) && NameConstants.JCR_CREATED.equals(name)) { return new QValue[] { create(Calendar.getInstance()) }; } else if (NameConstants.NT_RESOURCE.equals(nodeType) && NameConstants.JCR_LASTMODIFIED.equals(name)) { return new QValue[] { create(Calendar.getInstance()) }; } else if (NameConstants.MIX_REFERENCEABLE.equals(nodeType) && NameConstants.JCR_UUID.equals(name)) { return new QValue[] { create(UUID.randomUUID().toString(), PropertyType.STRING) }; } else { throw new RepositoryException("createFromDefinition not implemented for: " + name); } }
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"); }
/** * Returns <code>true</code> if the property with the given name is * indexed according to this rule. * * @param state the node state. * @param propertyName the name of a property. * @return <code>true</code> if the property is indexed; * <code>false</code> otherwise. */ public boolean isIndexed(NodeState state, Name propertyName) { if (mixinNodeType && effectiveNodeType != null) { QPropertyDefinition[] allPropDefs = effectiveNodeType.getAllPropDefs(); for (QPropertyDefinition propertyDefinition : allPropDefs) { if (propertyDefinition.getName().equals(propertyName)) { return getConfig(propertyName) != null; } } return true; } else { return getConfig(propertyName) != null; } }
/** * Returns <code>true</code> if the property with the given name is * indexed according to this rule. * * @param state the node state. * @param propertyName the name of a property. * @return <code>true</code> if the property is indexed; * <code>false</code> otherwise. */ public boolean isIndexed(NodeState state, Name propertyName) { if (mixinNodeType && effectiveNodeType != null) { QPropertyDefinition[] allPropDefs = effectiveNodeType.getAllPropDefs(); for (QPropertyDefinition propertyDefinition : allPropDefs) { if (propertyDefinition.getName().equals(propertyName)) { return getConfig(propertyName) != null; } } return true; } else { return getConfig(propertyName) != null; } }
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); } }
/** * 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"); }
/** * Copy constructor. * * @param propDef some other property definition. */ public QPropertyDefinitionImpl(QPropertyDefinition propDef) { this(propDef.getName(), propDef.getDeclaringNodeType(), propDef.isAutoCreated(), propDef.isMandatory(), propDef.getOnParentVersion(), propDef.isProtected(), propDef.getDefaultValues(), propDef.isMultiple(), propDef.getRequiredType(), propDef.getValueConstraints()); }
/** * Copy constructor. * * @param propDef some other property definition. */ public QPropertyDefinitionImpl(QPropertyDefinition propDef) { this(propDef.getName(), propDef.getDeclaringNodeType(), propDef.isAutoCreated(), propDef.isMandatory(), propDef.getOnParentVersion(), propDef.isProtected(), propDef.getDefaultValues(), propDef.isMultiple(), propDef.getRequiredType(), propDef.getValueConstraints(), propDef.getAvailableQueryOperators(), propDef.isFullTextSearchable(), propDef.isQueryOrderable()); }
/** * Copy constructor. * * @param propDef some other property definition. */ public QPropertyDefinitionImpl(QPropertyDefinition propDef) { this(propDef.getName(), propDef.getDeclaringNodeType(), propDef.isAutoCreated(), propDef.isMandatory(), propDef.getOnParentVersion(), propDef.isProtected(), propDef.getDefaultValues(), propDef.isMultiple(), propDef.getRequiredType(), propDef.getValueConstraints(), propDef.getAvailableQueryOperators(), propDef.isFullTextSearchable(), propDef.isQueryOrderable()); }
QPropertyDefinition pd = defProvider.getQPropertyDefinition(nState.getAllNodeTypeNames(), NameConstants.JCR_MIXINTYPES, PropertyType.NAME, true); QValue[] mixinValue = getQValues(mixinNames, qValueFactory); addPropertyState(nState, pd.getName(), pd.getRequiredType(), mixinValue, pd, operation.getOptions());
/** * Create a new JCR property definition from the given <code>QPropertyDefinition</code>. * * @param qPd A SPI property definition. * @return the corresponding JCR property definition. * @throws RepositoryException if an error occurs. */ public PropertyDefinition create(QPropertyDefinition qPd) throws RepositoryException { PropertyDefinitionTemplate pt = ntMgr.createPropertyDefinitionTemplate(); pt.setName(getJCRName(qPd.getName())); pt.setAutoCreated(qPd.isAutoCreated()); pt.setMandatory(qPd.isMandatory()); pt.setOnParentVersion(qPd.getOnParentVersion()); pt.setProtected(qPd.isProtected()); pt.setRequiredType(qPd.getRequiredType()); pt.setMultiple(qPd.isMultiple()); pt.setFullTextSearchable(qPd.isFullTextSearchable()); pt.setValueConstraints(createValueConstraints(qPd.getRequiredType(), qPd.getValueConstraints())); pt.setAvailableQueryOperators(qPd.getAvailableQueryOperators()); pt.setQueryOrderable(qPd.isQueryOrderable()); pt.setDefaultValues(createValues(qPd.getDefaultValues())); return pt; }
/** * Create a new JCR property definition from the given <code>QPropertyDefinition</code>. * * @param qPd A SPI property definition. * @return the corresponding JCR property definition. * @throws RepositoryException if an error occurs. */ public PropertyDefinition create(QPropertyDefinition qPd) throws RepositoryException { PropertyDefinitionTemplate pt = ntMgr.createPropertyDefinitionTemplate(); pt.setName(getJCRName(qPd.getName())); pt.setAutoCreated(qPd.isAutoCreated()); pt.setMandatory(qPd.isMandatory()); pt.setOnParentVersion(qPd.getOnParentVersion()); pt.setProtected(qPd.isProtected()); pt.setRequiredType(qPd.getRequiredType()); pt.setMultiple(qPd.isMultiple()); pt.setFullTextSearchable(qPd.isFullTextSearchable()); pt.setValueConstraints(createValueConstraints(qPd.getRequiredType(), qPd.getValueConstraints())); pt.setAvailableQueryOperators(qPd.getAvailableQueryOperators()); pt.setQueryOrderable(qPd.isQueryOrderable()); pt.setDefaultValues(createValues(qPd.getDefaultValues())); return pt; }
private PropertyDefinitionTemplate createPropertyDefinitionTemplate(ValueFactory valueFactory, NodeTypeManager ntMgr, QPropertyDefinition def) throws RepositoryException { PropertyDefinitionTemplate tmpl = ntMgr.createPropertyDefinitionTemplate(); Name name = def.getName(); if (name != null) { tmpl.setName(getOakName(name));