@Override public String getPrimaryItemName() { return getJcrNameAllowNull(primaryItemOakName); }
@Override public String[] getDeclaredSupertypeNames() { return getJcrNamesAllowNull(superTypeOakNames); }
public String toString() { return String.format("NodeTypeTemplate(%s)", getOakName()); }
super(mapper, definition.getName()); setMixin(definition.isMixin()); setOrderableChildNodes(definition.hasOrderableChildNodes()); setAbstract(definition.isAbstract()); setQueryable(definition.isQueryable()); String primaryItemName = definition.getPrimaryItemName(); if (primaryItemName != null) { setPrimaryItemName(primaryItemName); setDeclaredSuperTypeNames(definition.getDeclaredSupertypeNames());
@Override public final NodeTypeIterator registerNodeTypes( NodeTypeDefinition[] ntds, boolean allowUpdate) throws RepositoryException { Root root = getWriteRoot(); try { Tree tree = getOrCreateNodeTypes(root); for (NodeTypeDefinition ntd : ntds) { NodeTypeTemplateImpl template; if (ntd instanceof NodeTypeTemplateImpl) { template = (NodeTypeTemplateImpl) ntd; } else { // some external template implementation, copy before proceeding template = new NodeTypeTemplateImpl(getNamePathMapper(), ntd); } template.writeTo(tree, allowUpdate); } root.commit(); refresh(); List<NodeType> types = new ArrayList<NodeType>(ntds.length); for (NodeTypeDefinition ntd : ntds) { types.add(getNodeType(ntd.getName())); } return new NodeTypeIteratorAdapter(types); } catch (CommitFailedException e) { String message = "Failed to register node types."; throw e.asRepositoryException(message); } }
String oakName = getOakName(); if (oakName == null) { throw new RepositoryException("Cannot register node type: name is missing."); } else if (!allowUpdate) { throw new NodeTypeExistsException( "Node type " + getName() + " already exists"); writeItemDefinitions(type, propertyDefinitionTemplates, JCR_PROPERTYDEFINITION, NT_PROPERTYDEFINITION); writeItemDefinitions(type, nodeDefinitionTemplates, JCR_CHILDNODEDEFINITION, NT_CHILDNODEDEFINITION);
@Override public NodeTypeTemplate createNodeTypeTemplate(NodeTypeDefinition ntd) throws ConstraintViolationException { return new NodeTypeTemplateImpl(getNamePathMapper(), ntd); }
@Override public void setDeclaredSuperTypeNames(String[] jcrNames) throws ConstraintViolationException { this.superTypeOakNames = getOakNamesOrThrowConstraintViolation(jcrNames); }
@Override public void setPrimaryItemName(String jcrName) throws ConstraintViolationException { this.primaryItemOakName = getOakNameAllowNullOrThrowConstraintViolation(jcrName); }
private static void writeItemDefinitions(@NotNull Tree nodeTypeTree, @Nullable List<? extends ItemDefinitionTemplate> itemDefTemplates, @NotNull String nodeName, @NotNull String primaryTypeName) throws RepositoryException { // first remove existing for (Tree t : filter(nodeTypeTree.getChildren(), new SameNamePredicate(nodeName))) { t.remove(); } // now write definitions int index = 1; if (itemDefTemplates != null) { for (ItemDefinitionTemplate template : itemDefTemplates) { String name = nodeName(nodeName, index); Tree tree = nodeTypeTree.getChild(name); if (!tree.exists()) { tree = nodeTypeTree.addChild(name); tree.setProperty( JCR_PRIMARYTYPE, primaryTypeName, NAME); } template.writeTo(tree); index++; } } }
super(mapper, definition.getName()); setMixin(definition.isMixin()); setOrderableChildNodes(definition.hasOrderableChildNodes()); setAbstract(definition.isAbstract()); setQueryable(definition.isQueryable()); String primaryItemName = definition.getPrimaryItemName(); if (primaryItemName != null) { setPrimaryItemName(primaryItemName); setDeclaredSuperTypeNames(definition.getDeclaredSupertypeNames());
@Override public final NodeTypeIterator registerNodeTypes( NodeTypeDefinition[] ntds, boolean allowUpdate) throws RepositoryException { Root root = getWriteRoot(); try { Tree tree = getOrCreateNodeTypes(root); for (NodeTypeDefinition ntd : ntds) { NodeTypeTemplateImpl template; if (ntd instanceof NodeTypeTemplateImpl) { template = (NodeTypeTemplateImpl) ntd; } else { // some external template implementation, copy before proceeding template = new NodeTypeTemplateImpl(getNamePathMapper(), ntd); } template.writeTo(tree, allowUpdate); } root.commit(); refresh(); List<NodeType> types = new ArrayList<NodeType>(ntds.length); for (NodeTypeDefinition ntd : ntds) { types.add(getNodeType(ntd.getName())); } return new NodeTypeIteratorAdapter(types); } catch (CommitFailedException e) { String message = "Failed to register node types."; throw e.asRepositoryException(message); } }
String oakName = getOakName(); if (oakName == null) { throw new RepositoryException("Cannot register node type: name is missing."); } else if (!allowUpdate) { throw new NodeTypeExistsException( "Node type " + getName() + " already exists"); writeItemDefinitions(type, propertyDefinitionTemplates, JCR_PROPERTYDEFINITION, NT_PROPERTYDEFINITION); writeItemDefinitions(type, nodeDefinitionTemplates, JCR_CHILDNODEDEFINITION, NT_CHILDNODEDEFINITION);
@Override public NodeTypeTemplate createNodeTypeTemplate(NodeTypeDefinition ntd) throws ConstraintViolationException { return new NodeTypeTemplateImpl(getNamePathMapper(), ntd); }
@Override public void setDeclaredSuperTypeNames(String[] jcrNames) throws ConstraintViolationException { this.superTypeOakNames = getOakNamesOrThrowConstraintViolation(jcrNames); }
@Override public void setPrimaryItemName(String jcrName) throws ConstraintViolationException { this.primaryItemOakName = getOakNameAllowNullOrThrowConstraintViolation(jcrName); }
private static void writeItemDefinitions(@NotNull Tree nodeTypeTree, @Nullable List<? extends ItemDefinitionTemplate> itemDefTemplates, @NotNull String nodeName, @NotNull String primaryTypeName) throws RepositoryException { // first remove existing for (Tree t : filter(nodeTypeTree.getChildren(), new SameNamePredicate(nodeName))) { t.remove(); } // now write definitions int index = 1; if (itemDefTemplates != null) { for (ItemDefinitionTemplate template : itemDefTemplates) { String name = nodeName(nodeName, index); Tree tree = nodeTypeTree.getChild(name); if (!tree.exists()) { tree = nodeTypeTree.addChild(name); tree.setProperty( JCR_PRIMARYTYPE, primaryTypeName, NAME); } template.writeTo(tree); index++; } } }
super(mapper, definition.getName()); setMixin(definition.isMixin()); setOrderableChildNodes(definition.hasOrderableChildNodes()); setAbstract(definition.isAbstract()); setQueryable(definition.isQueryable()); String primaryItemName = definition.getPrimaryItemName(); if (primaryItemName != null) { setPrimaryItemName(primaryItemName); setDeclaredSuperTypeNames(definition.getDeclaredSupertypeNames());
@Override public final NodeTypeIterator registerNodeTypes( NodeTypeDefinition[] ntds, boolean allowUpdate) throws RepositoryException { Root root = getWriteRoot(); try { Tree tree = getOrCreateNodeTypes(root); for (NodeTypeDefinition ntd : ntds) { NodeTypeTemplateImpl template; if (ntd instanceof NodeTypeTemplateImpl) { template = (NodeTypeTemplateImpl) ntd; } else { // some external template implementation, copy before proceeding template = new NodeTypeTemplateImpl(getNamePathMapper(), ntd); } template.writeTo(tree, allowUpdate); } root.commit(); refresh(); List<NodeType> types = new ArrayList<NodeType>(ntds.length); for (NodeTypeDefinition ntd : ntds) { types.add(getNodeType(ntd.getName())); } return new NodeTypeIteratorAdapter(types); } catch (CommitFailedException e) { String message = "Failed to register node types."; throw e.asRepositoryException(message); } }
String oakName = getOakName(); if (oakName == null) { throw new RepositoryException("Cannot register node type: name is missing."); } else if (!allowUpdate) { throw new NodeTypeExistsException( "Node type " + getName() + " already exists"); writeItemDefinitions(type, propertyDefinitionTemplates, JCR_PROPERTYDEFINITION, NT_PROPERTYDEFINITION); writeItemDefinitions(type, nodeDefinitionTemplates, JCR_CHILDNODEDEFINITION, NT_CHILDNODEDEFINITION);