propertyDefinitions.put(prop6.getId(), prop6);
prop6 = PropertyCreationHelper.createIntegerMultiDefinition(PROP_ID_INT_MULTI_VALUE, "Sample Int multi-value Property");
propertyDefinitions.put(prop6.getId(), prop6);
PropertyStringDefinitionImpl prop7 = PropertyCreationHelper.createStringDefinition(PROP_ID_STRING,
"Sample String Property");
propertyDefinitions.put(prop7.getId(), prop7);
prop7 = PropertyCreationHelper.createStringMultiDefinition(PROP_ID_STRING_MULTI_VALUE,
"Sample String multi-value Property");
propertyDefinitions.put(prop7.getId(), prop7);
PropertyUriDefinitionImpl prop8 = PropertyCreationHelper.createUriDefinition(PROP_ID_URI, "Sample Uri Property");
propertyDefinitions.put(prop8.getId(), prop8);
prop8 = PropertyCreationHelper.createUriMultiDefinition(PROP_ID_URI_MULTI_VALUE, "Sample Uri multi-value Property");
propertyDefinitions.put(prop8.getId(), prop8);
PropertyStringDefinitionImpl prop9 = PropertyCreationHelper.createStringDefinition("PickListProp",
"Sample Pick List Property");
List<Choice<String>> choiceList = new ArrayList<Choice<String>>();
ChoiceImpl<String> elem = new ChoiceImpl<String>();
elem.setValue(Collections.singletonList("red"));
choiceList.add(elem);
elem = new ChoiceImpl<String>();
elem.setValue(Collections.singletonList("green"));
choiceList.add(elem);
elem = new ChoiceImpl<String>();
elem.setValue(Collections.singletonList("blue"));
choiceList.add(elem);
elem = new ChoiceImpl<String>();
elem.setValue(Collections.singletonList("black"));
choiceList.add(elem);
prop9.setChoices(choiceList);
prop9.setDefaultValue(Collections.singletonList("blue"));
propertyDefinitions.put(prop9.getId(), prop9);
/*
* try short form: / PropertyCreationHelper.addElemToPicklist(prop9,
* "red"); PropertyCreationHelper.addElemToPicklist(prop9, "green");
* PropertyCreationHelper.addElemToPicklist(prop9, "blue");
* PropertyCreationHelper.addElemToPicklist(prop9, "black");
* PropertyCreationHelper.setDefaultValue(prop9, "blue"); /
*/
cmisComplexType.addCustomPropertyDefinitions(propertyDefinitions);
// add type to types collection
typesList.add(cmisComplexType);
// create a type hierarchy with inherited properties
InMemoryDocumentTypeDefinition cmisDocTypeTopLevel = new InMemoryDocumentTypeDefinition(TOPLEVEL_TYPE,
"Document type with properties, Level 1", InMemoryDocumentTypeDefinition.getRootDocumentType());
InMemoryDocumentTypeDefinition cmisDocTypeLevel1 = new InMemoryDocumentTypeDefinition(LEVEL1_TYPE,
"Document type with inherited properties, Level 2", cmisDocTypeTopLevel);
InMemoryDocumentTypeDefinition cmisDocTypeLevel2 = new InMemoryDocumentTypeDefinition(LEVEL2_TYPE,
"Document type with inherited properties, Level 3", cmisDocTypeLevel1);
propertyDefinitions = new HashMap<String, PropertyDefinition<?>>();
PropertyStringDefinitionImpl propTop = PropertyCreationHelper.createStringDefinition("StringPropTopLevel",
"Sample String Property");
propertyDefinitions.put(propTop.getId(), propTop);
cmisDocTypeTopLevel.addCustomPropertyDefinitions(propertyDefinitions);
propertyDefinitions = new HashMap<String, PropertyDefinition<?>>();
PropertyStringDefinitionImpl propLevel1 = PropertyCreationHelper.createStringDefinition("StringPropLevel1",
"String Property Level 1");
propertyDefinitions.put(propLevel1.getId(), propLevel1);
cmisDocTypeLevel1.addCustomPropertyDefinitions(propertyDefinitions);
propertyDefinitions = new HashMap<String, PropertyDefinition<?>>();
PropertyStringDefinitionImpl propLevel2 = PropertyCreationHelper.createStringDefinition("StringPropLevel2",
"String Property Level 2");
propertyDefinitions.put(propLevel2.getId(), propLevel2);
cmisDocTypeLevel2.addCustomPropertyDefinitions(propertyDefinitions);
// create a versioned type with properties
InMemoryDocumentTypeDefinition cmisVersionedType = new InMemoryDocumentTypeDefinition(VERSION_DOCUMENT_TYPE_ID,
"VersionedType", InMemoryDocumentTypeDefinition.getRootDocumentType());
// create a single String property definition
propertyDefinitions = new HashMap<String, PropertyDefinition<?>>();
PropertyStringDefinitionImpl prop1 = PropertyCreationHelper.createStringDefinition(VERSION_PROPERTY_ID,
"Sample String Property");
propertyDefinitions.put(prop1.getId(), prop1);
cmisVersionedType.addCustomPropertyDefinitions(propertyDefinitions);
cmisVersionedType.setIsVersionable(true); // make it a versionable type;
// create a folder type