使用CMIS,我可以向对象添加属性。属性可以有一个值,也可以是多值属性。当对多个对象具有多值属性时,如何搜索具有该属性的所有对象,并且该属性包含特定值或多个特定值?
例如。(此处示例)
CmisObject cmisobject = ....
Map<String, Object> updateProperties = new HashMap<String, Object>();
List<String> shoppingList = new ArrayList<String>();
shoppingList.add("milk");
shoppingList.add("bread");
shoppingList.add("cheese");
updateProperties.put("my:shopping.list", shoppingList); // multi-value property
cmisobject.updateProperties(updateProperties);
现在,如果我想对所有具有属性my:shopping.list的对象执行查询,并且该属性包含值bread或值milk and cheese,我该如何执行此操作?
试试这个:
boolean isPropertyPresent(Map<String, Object> updateProperties) {//should use List<String> instead of Object
List<String> shoppingList = (List<String>) updateProperties.get("my:shopping.list");
if (shoppingList != null) {
return shoppingList.contains("bread") || (shoppingList.contains("milk") && shoppingList.contains("cheese"));
}
return false;
}