/** * Create a {@link NodeTypeTemplate} by using a {@link javax.jcr.nodetype.NodeType definition}. * This method is takes {@link PropertyDefinitionTemplate}s into consideration as well. */ private NodeTypeTemplate createNodeTypeWithProperties(NodeTypeManager nodeTypeManager, String name, String[] superTypeNames, boolean isMixin, boolean isOrderableChildNodes, String primaryItemName, boolean isQueryable, List<PropertyDefinitionTemplate> properties) throws RepositoryException { NodeTypeTemplate nodeType = createNodeType(nodeTypeManager, name, superTypeNames, isMixin, isOrderableChildNodes, primaryItemName, isQueryable); nodeType.getPropertyDefinitionTemplates().addAll(properties); return nodeType; }
/** * Create a {@link NodeTypeTemplate} by using a {@link javax.jcr.nodetype.NodeType definition}. * This method is takes {@link PropertyDefinitionTemplate}s into consideration as well. */ private NodeTypeTemplate createNodeTypeWithProperties(NodeTypeManager nodeTypeManager, String name, String[] superTypeNames, boolean isMixin, boolean isOrderableChildNodes, String primaryItemName, boolean isQueryable, List<PropertyDefinitionTemplate> properties) throws RepositoryException { NodeTypeTemplate nodeType = createNodeType(nodeTypeManager, name, superTypeNames, isMixin, isOrderableChildNodes, primaryItemName, isQueryable); nodeType.getPropertyDefinitionTemplates().addAll(properties); return nodeType; }
@SuppressWarnings( "unchecked" ) @Override public NodeTypeDefinition getNodeTypeDefinition( final NodeTypeManager ntMgr, final ValueFactory vFac ) throws RepositoryException { NodeTypeTemplate t = ntMgr.createNodeTypeTemplate(); t.setName( PHO_NT + "localizedString" ); //$NON-NLS-1$ t.getPropertyDefinitionTemplates().add( getRootLocaleProperty( ntMgr, vFac ) ); t.getPropertyDefinitionTemplates().add( getWildcardStringProperty( ntMgr, vFac ) ); return t; }
@SuppressWarnings( "unchecked" ) @Override public NodeTypeDefinition getNodeTypeDefinition( final NodeTypeManager ntMgr, final ValueFactory vFac ) throws RepositoryException { NodeTypeTemplate t = ntMgr.createNodeTypeTemplate(); t.setName( PHO_NT + "pentahoLockTokenStorage" ); //$NON-NLS-1$ t.getPropertyDefinitionTemplates().add( getLockedNodeRefProperty( ntMgr, vFac ) ); t.getPropertyDefinitionTemplates().add( getLockTokenProperty( ntMgr, vFac ) ); return t; }
@SuppressWarnings( "unchecked" ) @Override public NodeTypeDefinition getNodeTypeDefinition( final NodeTypeManager ntMgr, final ValueFactory vFac ) throws RepositoryException { NodeTypeTemplate t = ntMgr.createNodeTypeTemplate(); t.setName( PHO_NT + "pentahoFile" ); //$NON-NLS-1$ t.setDeclaredSuperTypeNames( new String[] { NT + "file", PHO_NT + "pentahoHierarchyNode" } ); //$NON-NLS-1$ //$NON-NLS-2$ t.getPropertyDefinitionTemplates().add( getLastModifiedProperty( ntMgr, vFac ) ); t.getPropertyDefinitionTemplates().add( getContentTypeProperty( ntMgr, vFac ) ); t.getPropertyDefinitionTemplates().add( getFileSizeProperty( ntMgr, vFac ) ); return t; }
private boolean validatePropertyIsMultiple(String propName) { for (Object o : ntd.getPropertyDefinitionTemplates()) { PropertyDefinitionTemplate pd = (PropertyDefinitionTemplate) o; if ((pd != null) && (pd.getName().equals(propName)) && (!pd.isMultiple())) { return false; } } return true; }
private boolean isPropertyProtected(String propName) { for (Object o : ntd.getPropertyDefinitionTemplates()) { PropertyDefinitionTemplate pd = (PropertyDefinitionTemplate) o; if ((pd != null) && (pd.getName().equals(propName)) && (pd.isProtected())) { return true; } } return false; }
/** * Create a simple {@link NodeTypeTemplate} with a list of supertype, one generic child node and two generic properties.<br> */ public static NodeTypeTemplate createSimpleNodeType(NodeTypeManager nodeTypeManager, String name, List<String> supertype) throws RepositoryException { NodeTypeTemplate nodeType = null; nodeType = createNodeType(nodeTypeManager, name, supertype.toArray(new String[supertype.size()]), false, true, null, true); // Create generic child NodeDefinitionTemplate child = createChildNodeDefinition(nodeTypeManager, false, false, false, false, null, null, OnParentVersionAction.COPY, new String[]{"nt:base"}); nodeType.getNodeDefinitionTemplates().add(child); // Create generic property definition PropertyDefinitionTemplate propertyDefinitionNotMultiple = createPropertyDefinition(nodeTypeManager, null, false, true, false, false, false, true, OnParentVersionAction.COPY, PropertyType.UNDEFINED, null, null, null); nodeType.getPropertyDefinitionTemplates().add(propertyDefinitionNotMultiple); PropertyDefinitionTemplate propertyDefinitionMultiple = createPropertyDefinition(nodeTypeManager, null, false, true, false, true, false, true, OnParentVersionAction.COPY, PropertyType.UNDEFINED, null, null, null); nodeType.getPropertyDefinitionTemplates().add(propertyDefinitionMultiple); return nodeType; }
public boolean canRemoveProperty(String s) { boolean canRemovePrp = true; Iterator it = ntd.getPropertyDefinitionTemplates().iterator(); PropertyDefinition pd = null; while (it.hasNext()) { pd = (PropertyDefinitionTemplate) it.next(); if (((pd != null) && pd.getName().equals(s) && (pd.isProtected() || pd.isMandatory()))) { canRemovePrp = false; return canRemovePrp; } } return canRemovePrp; }
@SuppressWarnings( "unchecked" ) @Override public NodeTypeDefinition getNodeTypeDefinition( final NodeTypeManager ntMgr, final ValueFactory vFac ) throws RepositoryException { NodeTypeTemplate t = ntMgr.createNodeTypeTemplate(); t.setName( PHO_MIX + "pentahoVersionable" ); //$NON-NLS-1$ t.setMixin( true ); t.setDeclaredSuperTypeNames( new String[] { MIX + "simpleVersionable" } ); //$NON-NLS-1$ t.getPropertyDefinitionTemplates().add( getAuthorProperty( ntMgr, vFac ) ); t.getPropertyDefinitionTemplates().add( getMessageProperty( ntMgr, vFac ) ); t.getPropertyDefinitionTemplates().add( getAclOnlyChangeProperty( ntMgr, vFac ) ); return t; }
private void addPrimaryTypePropIfNotExists(PropertyDefinition[] pdfs) throws RepositoryException { // check and add primary type as property boolean hasPrimaryTypeProp = false; for (PropertyDefinition pd : pdfs) { if (pd.getName().equals("jcr:primaryType")) { hasPrimaryTypeProp = true; } } if (!hasPrimaryTypeProp) { ntd.getPropertyDefinitionTemplates().add(RegistryNodeTypeUtil. createJCRPrimaryTypeProperty(nodeTypeManager, ntd.getName())); } }
@SuppressWarnings( "unchecked" ) @Override public NodeTypeDefinition getNodeTypeDefinition( final NodeTypeManager ntMgr, final ValueFactory vFac ) throws RepositoryException { NodeTypeTemplate t = ntMgr.createNodeTypeTemplate(); t.setName( PHO_NT + "pentahoInternalFolder" ); //$NON-NLS-1$ t.setOrderableChildNodes( true ); t.getPropertyDefinitionTemplates().add( getWildcardMultipleProperty( ntMgr, vFac ) ); t.getPropertyDefinitionTemplates().add( getWildcardProperty( ntMgr, vFac ) ); t.getNodeDefinitionTemplates().add( getWildcardNode( ntMgr, vFac ) ); return t; }
@SuppressWarnings( "unchecked" ) @Override public NodeTypeDefinition getNodeTypeDefinition( final NodeTypeManager ntMgr, final ValueFactory vFac ) throws RepositoryException { NodeTypeTemplate t = ntMgr.createNodeTypeTemplate(); t.setName( PHO_NT + "pentahoHierarchyNode" ); //$NON-NLS-1$ t.setDeclaredSuperTypeNames( new String[] { NT + "hierarchyNode", MIX + "referenceable" } ); //$NON-NLS-1$//$NON-NLS-2$ t.getNodeDefinitionTemplates().add( getTitleNode( ntMgr ) ); t.getNodeDefinitionTemplates().add( getDescriptionNode( ntMgr ) ); t.getNodeDefinitionTemplates().add( getMetadataNode( ntMgr ) ); t.getNodeDefinitionTemplates().add( getLocaleNode( ntMgr ) ); t.getPropertyDefinitionTemplates().add( getHiddenProperty( ntMgr, vFac ) ); t.getPropertyDefinitionTemplates().add( getAclNodeProperty( ntMgr, vFac ) ); return t; }
@Override public void build() throws IllegalStateException { template.setAutoCreated(super.autocreate); template.setMandatory(super.isMandatory); template.setOnParentVersion(super.onParent); template.setProtected(super.isProtected); template.setRequiredType(super.requiredType); template.setValueConstraints(constraints.toArray(new String[constraints.size()])); template.setDefaultValues(values.toArray(new Value[values.size()])); template.setMultiple(super.isMultiple); template.setAvailableQueryOperators(super.queryOperators); template.setFullTextSearchable(super.fullTextSearchable); template.setQueryOrderable(super.queryOrderable); @SuppressWarnings("unchecked") List<PropertyDefinitionTemplate> templates = ntd.template.getPropertyDefinitionTemplates(); templates.add(template); }
@SuppressWarnings( {"unchecked"} ) private NodeTypeTemplate createMixinC( NodeTypeManager mgr ) throws RepositoryException { NodeTypeTemplate mixinTypeC = mgr.createNodeTypeTemplate(); mixinTypeC.setName(MIXIN_TYPE_C); mixinTypeC.setMixin(true); PropertyDefinitionTemplate propertyB = mgr.createPropertyDefinitionTemplate(); propertyB.setName(PROPERTY_B); propertyB.setOnParentVersion(OnParentVersionAction.IGNORE); propertyB.setRequiredType(PropertyType.STRING); mixinTypeC.getPropertyDefinitionTemplates().add(propertyB); return mixinTypeC; }
@SuppressWarnings( "unchecked" ) public static void compareTemplateToNodeType( NodeTypeTemplate template, NodeType nodeType ) { compareNodeTypeDefinitions(template, nodeType); PropertyDefinition[] propertyDefs = nodeType.getDeclaredPropertyDefinitions(); List<PropertyDefinitionTemplate> propertyTemplates = template.getPropertyDefinitionTemplates(); comparePropertyDefinitions(propertyDefs, propertyTemplates); NodeDefinition[] childNodeDefs = nodeType.getDeclaredChildNodeDefinitions(); List<NodeDefinitionTemplate> childNodeTemplates = template.getNodeDefinitionTemplates(); compareChildNodeDefinitions(childNodeDefs, childNodeTemplates); }
@SuppressWarnings( {"unchecked"} ) private NodeTypeTemplate createPrimaryTypeA( NodeTypeManager mgr ) throws RepositoryException { NodeTypeTemplate primaryTypeA = mgr.createNodeTypeTemplate(); primaryTypeA.setName(PRIMARY_TYPE_A); NodeDefinitionTemplate childNodeA = mgr.createNodeDefinitionTemplate(); childNodeA.setName(CHILD_NODE_A); childNodeA.setOnParentVersion(OnParentVersionAction.IGNORE); primaryTypeA.getNodeDefinitionTemplates().add(childNodeA); PropertyDefinitionTemplate propertyA = mgr.createPropertyDefinitionTemplate(); propertyA.setName(PROPERTY_A); propertyA.setOnParentVersion(OnParentVersionAction.IGNORE); propertyA.setRequiredType(PropertyType.STRING); primaryTypeA.getPropertyDefinitionTemplates().add(propertyA); return primaryTypeA; }
private NodeTypeTemplate createNodeTypeWithIgnoreOPVProperty(String propertyName) throws RepositoryException { NodeTypeManager manager = superuser.getWorkspace().getNodeTypeManager(); NodeTypeTemplate nt = manager.createNodeTypeTemplate(); nt.setName("testType"); nt.setMixin(true); PropertyDefinitionTemplate opt = manager.createPropertyDefinitionTemplate(); opt.setMandatory(false); opt.setName(propertyName); opt.setRequiredType(PropertyType.STRING); opt.setOnParentVersion(OnParentVersionAction.IGNORE); List pdt = nt.getPropertyDefinitionTemplates(); pdt.add(opt); manager.registerNodeType(nt, true); return nt; }
@SuppressWarnings( {"unchecked"} ) private NodeTypeTemplate createMixinA( NodeTypeManager mgr ) throws RepositoryException { NodeTypeTemplate mixinTypeA = mgr.createNodeTypeTemplate(); mixinTypeA.setName(MIXIN_TYPE_A); mixinTypeA.setMixin(true); NodeDefinitionTemplate childNodeA = mgr.createNodeDefinitionTemplate(); childNodeA.setName(CHILD_NODE_A); childNodeA.setOnParentVersion(OnParentVersionAction.IGNORE); mixinTypeA.getNodeDefinitionTemplates().add(childNodeA); PropertyDefinitionTemplate propertyA = mgr.createPropertyDefinitionTemplate(); propertyA.setName(PROPERTY_A); propertyA.setOnParentVersion(OnParentVersionAction.IGNORE); propertyA.setRequiredType(PropertyType.STRING); mixinTypeA.getPropertyDefinitionTemplates().add(propertyA); return mixinTypeA; }
@SuppressWarnings( {"unchecked"} ) private NodeTypeTemplate createMixinWithAutoProperty( NodeTypeManager mgr ) throws RepositoryException { NodeTypeTemplate mixinTypeWithAutoProperty = mgr.createNodeTypeTemplate(); mixinTypeWithAutoProperty.setName("mixinTypeWithAutoCreatedProperty"); mixinTypeWithAutoProperty.setMixin(true); PropertyDefinitionTemplate propertyB = mgr.createPropertyDefinitionTemplate(); propertyB.setName(PROPERTY_B); propertyB.setMandatory(true); propertyB.setAutoCreated(true); propertyB.setOnParentVersion(OnParentVersionAction.IGNORE); propertyB.setRequiredType(PropertyType.LONG); propertyB.setDefaultValues(new Value[] {session.getValueFactory().createValue("10")}); mixinTypeWithAutoProperty.getPropertyDefinitionTemplates().add(propertyB); return mixinTypeWithAutoProperty; }