private void copyNodeTypes(NodeTypeManager ntMgr, ValueFactory valueFactory) throws RepositoryException { NodeTypeRegistry sourceRegistry = source.getNodeTypeRegistry(); List<NodeTypeTemplate> templates = Lists.newArrayList(); for (Name name : sourceRegistry.getRegisteredNodeTypes()) { String oakName = getOakName(name); // skip built-in nodetypes (OAK-1235) if (!ntMgr.hasNodeType(oakName)) { QNodeTypeDefinition def = sourceRegistry.getNodeTypeDef(name); templates.add(createNodeTypeTemplate(valueFactory, ntMgr, oakName, def)); } } ntMgr.registerNodeTypes(templates.toArray(new NodeTypeTemplate[templates.size()]), true); }
private void copyNodeTypes(NodeTypeManager ntMgr, ValueFactory valueFactory) throws RepositoryException { NodeTypeRegistry sourceRegistry = source.getNodeTypeRegistry(); List<NodeTypeTemplate> templates = Lists.newArrayList(); for (Name name : sourceRegistry.getRegisteredNodeTypes()) { String oakName = getOakName(name); // skip built-in nodetypes (OAK-1235) if (!ntMgr.hasNodeType(oakName)) { QNodeTypeDefinition def = sourceRegistry.getNodeTypeDef(name); templates.add(createNodeTypeTemplate(valueFactory, ntMgr, oakName, def)); } } ntMgr.registerNodeTypes(templates.toArray(new NodeTypeTemplate[templates.size()]), true); }
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"); }
private void copyNodeTypes() throws RepositoryException { NodeTypeRegistry sourceRegistry = source.getNodeTypeRegistry(); NodeTypeRegistry targetRegistry = target.getNodeTypeRegistry(); logger.info("Copying registered node types"); Collection<Name> existing = Arrays.asList(targetRegistry.getRegisteredNodeTypes()); Collection<QNodeTypeDefinition> register = new ArrayList<QNodeTypeDefinition>(); for (Name name : sourceRegistry.getRegisteredNodeTypes()) { // TODO: what about modified node types? if (!existing.contains(name)) { register.add(sourceRegistry.getNodeTypeDef(name)); } } try { targetRegistry.registerNodeTypes(register); } catch (InvalidNodeTypeDefException e) { throw new RepositoryException("Unable to copy node types", e); } }
perNtConfig.add(new IndexingRule(element, ntReg.getNodeTypeDef(ntName), ntReg.getEffectiveNodeType(ntName)));
perNtConfig.add(new IndexingRule(element, ntReg.getNodeTypeDef(ntName), ntReg.getEffectiveNodeType(ntName)));
private void copyNodeTypes() throws RepositoryException { NodeTypeRegistry sourceRegistry = source.getNodeTypeRegistry(); NodeTypeRegistry targetRegistry = target.getNodeTypeRegistry(); logger.info("Copying registered node types"); Collection<Name> existing = Arrays.asList(targetRegistry.getRegisteredNodeTypes()); Collection<QNodeTypeDefinition> register = new ArrayList<QNodeTypeDefinition>(); for (Name name : sourceRegistry.getRegisteredNodeTypes()) { // TODO: what about modified node types? if (!existing.contains(name)) { register.add(sourceRegistry.getNodeTypeDef(name)); } } try { targetRegistry.registerNodeTypes(register); } catch (InvalidNodeTypeDefException e) { throw new RepositoryException("Unable to copy node types", e); } }
for (int i = 0; i < nodeTypes.length; i++) { try { QNodeTypeDefinition nodeType = ntReg.getNodeTypeDef(nodeTypes[i]); Name[] superTypes = nodeType.getSupertypes(); int superTypeMatch = -1;
for (int i = 0; i < nodeTypes.length; i++) { try { QNodeTypeDefinition nodeType = ntReg.getNodeTypeDef(nodeTypes[i]); Name[] superTypes = nodeType.getSupertypes(); int superTypeMatch = -1;
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); } }
/** * @param name node type name * @return node type * @throws NoSuchNodeTypeException if the nodetype does not exit */ @Override public NodeTypeImpl getNodeType(Name name) throws NoSuchNodeTypeException { synchronized (ntCache) { NodeTypeImpl nt = ntCache.get(name); if (nt == null) { NodeTypeRegistry registry = context.getNodeTypeRegistry(); EffectiveNodeType ent = registry.getEffectiveNodeType(name); QNodeTypeDefinition def = registry.getNodeTypeDef(name); nt = new NodeTypeImpl( ent, def, this, context, context.getValueFactory(), context.getDataStore()); ntCache.put(name, nt); } return nt; } }
/** * @param name node type name * @return node type * @throws NoSuchNodeTypeException if the nodetype does not exit */ @Override public NodeTypeImpl getNodeType(Name name) throws NoSuchNodeTypeException { synchronized (ntCache) { NodeTypeImpl nt = ntCache.get(name); if (nt == null) { NodeTypeRegistry registry = context.getNodeTypeRegistry(); EffectiveNodeType ent = registry.getEffectiveNodeType(name); QNodeTypeDefinition def = registry.getNodeTypeDef(name); nt = new NodeTypeImpl( ent, def, this, context, context.getValueFactory(), context.getDataStore()); ntCache.put(name, nt); } return nt; } }
/** * {@inheritDoc} * <p> * currently we have no dynamic ones, we just recreate the entire nodetypes tree */ protected VirtualNodeState createRootNodeState() throws RepositoryException { VirtualNodeState root = new VirtualNodeState(this, parentId, rootNodeId, NameConstants.REP_NODETYPES, null); Name[] ntNames = ntReg.getRegisteredNodeTypes(); for (int i = 0; i < ntNames.length; i++) { QNodeTypeDefinition ntDef = ntReg.getNodeTypeDef(ntNames[i]); VirtualNodeState ntState = createNodeTypeState(root, ntDef); root.addChildNodeEntry(ntNames[i], ntState.getNodeId()); // add as hard reference root.addStateReference(ntState); } return root; }
/** * {@inheritDoc} * <p> * currently we have no dynamic ones, we just recreate the entire nodetypes tree */ protected VirtualNodeState createRootNodeState() throws RepositoryException { VirtualNodeState root = new VirtualNodeState(this, parentId, rootNodeId, NameConstants.REP_NODETYPES, null); Name[] ntNames = ntReg.getRegisteredNodeTypes(); for (int i = 0; i < ntNames.length; i++) { QNodeTypeDefinition ntDef = ntReg.getNodeTypeDef(ntNames[i]); VirtualNodeState ntState = createNodeTypeState(root, ntDef); root.addChildNodeEntry(ntNames[i], ntState.getNodeId()); // add as hard reference root.addStateReference(ntState); } return root; }
/** * @param name * @param nodeTypeName * @param ntReg * @throws ConstraintViolationException * @throws NoSuchNodeTypeException */ public void checkAddNodeConstraints(Name name, Name nodeTypeName, NodeTypeRegistry ntReg) throws ConstraintViolationException, NoSuchNodeTypeException { if (nodeTypeName != null) { QNodeTypeDefinition ntDef = ntReg.getNodeTypeDef(nodeTypeName); if (ntDef.isAbstract()) { throw new ConstraintViolationException(nodeTypeName + " is abstract."); } if (ntDef.isMixin()) { throw new ConstraintViolationException(nodeTypeName + " is mixin."); } } QItemDefinition nd = getApplicableChildNodeDef(name, nodeTypeName, ntReg); if (nd.isProtected()) { throw new ConstraintViolationException(name + " is protected"); } if (nd.isAutoCreated()) { throw new ConstraintViolationException(name + " is auto-created and can not be manually added"); } }
/** * @param name * @param nodeTypeName * @param ntReg * @throws ConstraintViolationException * @throws NoSuchNodeTypeException */ public void checkAddNodeConstraints(Name name, Name nodeTypeName, NodeTypeRegistry ntReg) throws ConstraintViolationException, NoSuchNodeTypeException { if (nodeTypeName != null) { QNodeTypeDefinition ntDef = ntReg.getNodeTypeDef(nodeTypeName); if (ntDef.isAbstract()) { throw new ConstraintViolationException(nodeTypeName + " is abstract."); } if (ntDef.isMixin()) { throw new ConstraintViolationException(nodeTypeName + " is mixin."); } } QItemDefinition nd = getApplicableChildNodeDef(name, nodeTypeName, ntReg); if (nd.isProtected()) { throw new ConstraintViolationException(name + " is protected"); } if (nd.isAutoCreated()) { throw new ConstraintViolationException(name + " is auto-created and can not be manually added"); } }