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; }
pdNode.setProperty("mandatory", String.valueOf(pd.isMandatory())); pdNode.setProperty("protected", String.valueOf(pd.isProtected())); pdNode.setProperty("multiple", String.valueOf(pd.isMultiple())); pdNode.setProperty("isFullTextSearchable", String.valueOf(pd.isFullTextSearchable())); pdNode.setProperty("isQueryOrderable", String.valueOf(pd.isQueryOrderable()));
public void testEmptyPropertyDefinitionTemplate() throws Exception { PropertyDefinitionTemplate pdt = ntm.createPropertyDefinitionTemplate(); assertNull(pdt.getName()); assertFalse(pdt.isAutoCreated()); assertFalse(pdt.isMandatory()); assertFalse(pdt.isProtected()); assertEquals(OnParentVersionAction.COPY, pdt.getOnParentVersion()); assertNull(pdt.getDeclaringNodeType()); assertEquals(PropertyType.STRING, pdt.getRequiredType()); assertFalse(pdt.isMultiple()); assertNull(pdt.getValueConstraints()); assertNull(pdt.getDefaultValues()); // the following methods cannot be tested as default value is // implementation specific: // - getAvailableQueryOperators // - isFullTextSearchable // - isQueryOrderable }
@Test public void testCreateSimpleNodeTypeContent() throws RepositoryException { // GIVEN String name = NodeTypes.LastModified.NAME; String superType = NodeType.NT_BASE; HashMap<String, Integer> propertyNameTypeMap = new HashMap<String, Integer>(); propertyNameTypeMap.put(NodeTypes.LastModified.LAST_MODIFIED, PropertyType.DATE); propertyNameTypeMap.put(NodeTypes.LastModified.LAST_MODIFIED_BY, PropertyType.STRING); // WHEN NodeTypeTemplate nodeTypeTemplate = NodeTypeTemplateUtil.createSimpleMixinNodeType(nodeTypeManager, name, superType, propertyNameTypeMap); // THEN assertNotNull(nodeTypeTemplate); assertEquals(NodeTypes.LastModified.LAST_MODIFIED, nodeTypeTemplate.getName()); assertTrue(nodeTypeTemplate.isMixin()); assertEquals(1, nodeTypeTemplate.getDeclaredSupertypeNames().length); assertEquals("nt:base", nodeTypeTemplate.getDeclaredSupertypeNames()[0]); assertEquals(2, nodeTypeTemplate.getPropertyDefinitionTemplates().size()); PropertyDefinitionTemplate lastModifiedProperty = (PropertyDefinitionTemplate) nodeTypeTemplate.getPropertyDefinitionTemplates().get(0); assertEquals(NodeTypes.LastModified.LAST_MODIFIED_BY, lastModifiedProperty.getName()); assertEquals(PropertyType.STRING, lastModifiedProperty.getRequiredType()); assertEquals(OnParentVersionAction.COPY, lastModifiedProperty.getOnParentVersion()); assertFalse(lastModifiedProperty.isAutoCreated()); assertFalse(lastModifiedProperty.isMandatory()); assertFalse(lastModifiedProperty.isProtected()); assertFalse(lastModifiedProperty.isMultiple()); PropertyDefinitionTemplate lastModifiedByProperty = (PropertyDefinitionTemplate) nodeTypeTemplate.getPropertyDefinitionTemplates().get(1); assertEquals(NodeTypes.LastModified.LAST_MODIFIED, lastModifiedByProperty.getName()); assertEquals(PropertyType.DATE, lastModifiedByProperty.getRequiredType()); }
public void testPropertyDefinitionTemplate() throws Exception { PropertyDefinitionTemplate pdt = createBooleanPropTemplate(); assertEquals(jcrPropName, pdt.getName()); try { pdt.setName(null); fail("null isn't a valid JCR name"); } catch (ConstraintViolationException e) { // success } assertEquals(false, pdt.isAutoCreated()); assertEquals(false, pdt.isMandatory()); assertEquals(OnParentVersionAction.IGNORE, pdt.getOnParentVersion()); assertEquals(false, pdt.isProtected()); assertEquals(PropertyType.BOOLEAN, pdt.getRequiredType()); assertEquals(null, pdt.getValueConstraints()); assertEquals(null, pdt.getDefaultValues()); assertEquals(false, pdt.isMultiple()); String[] qo = pdt.getAvailableQueryOperators(); assertEquals(1, qo.length); assertEquals(QueryObjectModelConstants.JCR_OPERATOR_EQUAL_TO, qo[0]); assertEquals(false, pdt.isFullTextSearchable()); assertEquals(false, pdt.isQueryOrderable()); }