return cmisType;
}
public static InMemoryDocumentTypeDefinition buildTypeWithHierachicalPickList(Cardinality cardinality) {
InMemoryDocumentTypeDefinition cmisType = new InMemoryDocumentTypeDefinition(PICK_LIST_DOC_TYPE,
"PickList Document Type for Validation", InMemoryDocumentTypeDefinition.getRootDocumentType());
Map<String, PropertyDefinition<?>> propertyDefinitions = new HashMap<String, PropertyDefinition<?>>();
// create a String property definition
// Create a two-level pick list with an outer property list state and an
// inner
// list of city
PropertyStringDefinitionImpl propDef = PropertyCreationHelper.createStringDefinition(PICK_LIST_PROP_DEF,
"Sample PickList (choice) Property");
List<Choice<String>> choiceListOuter = new ArrayList<Choice<String>>();
ChoiceImpl<String> elemOuter = new ChoiceImpl<String>();
elemOuter.setDisplayName("Bavaria");
List<Choice<String>> choiceListInner = new ArrayList<Choice<String>>();
ChoiceImpl<String> elemInner = new ChoiceImpl<String>();
elemInner.setDisplayName("Munich");
elemInner.setValue(Collections.singletonList("munich"));
choiceListInner.add(elemInner);
elemInner = new ChoiceImpl<String>();
elemInner.setDisplayName("Ingolstadt");
elemInner.setValue(Collections.singletonList("ingolstadt"));
choiceListInner.add(elemInner);
elemInner = new ChoiceImpl<String>();
elemInner.setDisplayName("Passau");
elemInner.setValue(Collections.singletonList("passau"));
choiceListInner.add(elemInner);
elemOuter.setChoice(choiceListInner);
choiceListOuter.add(elemOuter);
elemOuter = new ChoiceImpl<String>();
elemOuter.setDisplayName("Baden Wurtemberg");
choiceListInner = new ArrayList<Choice<String>>();
elemInner = new ChoiceImpl<String>();
elemInner.setDisplayName("Stuttgart");
elemInner.setValue(Collections.singletonList("stuttgart"));
choiceListInner.add(elemInner);
elemInner = new ChoiceImpl<String>();
elemInner.setDisplayName("Karlsruhe");
elemInner.setValue(Collections.singletonList("karlsruhe"));
choiceListInner.add(elemInner);
elemInner = new ChoiceImpl<String>();
elemInner.setDisplayName("Walldorf");
elemInner.setValue(Collections.singletonList("walldorf"));
choiceListInner.add(elemInner);
elemOuter.setChoice(choiceListInner);
choiceListOuter.add(elemOuter);
propDef.setChoices(choiceListOuter);
propDef.setCardinality(cardinality);
propertyDefinitions.put(propDef.getId(), propDef);
cmisType.setPropertyDefinitions(propertyDefinitions);
return cmisType;
}