我正在学习CMIS和Filenet P8。使用CMIS的apache化学库。我在选项列表中有问题。
选项列表与PropertyDefation关联。我试图显示与每个PropertyDefinition相关的选项列表。
ItemIterable<ObjectType> v = session.getTypeChildren("cmis:document", true);
Iterator<ObjectType> i = v.iterator();
while(i.hasNext()){
ObjectType a = i.next();
if(a!=null)
{
Map<String, PropertyDefinition<?>> d = a.getPropertyDefinitions();
Iterator<String> itr = d.keySet().iterator();
while(itr.hasNext()){
String key = itr.next().toString();
if ((Boolean.FALSE.equals(d.get(key).isInherited()))) {
PropertyDefinition<?> value = d.get(key);
// Choice List
List<?> ch = value.getChoices();
System.out.println("value " + value.getDisplayName()+ " " + " choice list " + ch.toString());
for (Object object : ch) {
System.out.println(object.toString());
}
Customproperties properties = new Customproperties(value.getDisplayName(),value.getPropertyType().toString(),value.getCardinality().name(),value.isRequired());
customPropertyList1.add(properties);
}
}
}
}
输出
value Document Title choice list []
value From choice list []
value To choice list []
value Cc choice list []
value Subject choice list [[extensions=null], [extensions=null]]
[extensions=null]
[extensions=null]
value Sent On choice list []
value Received On choice list []
value Link IDs choice list []
//对于属性定义主题,有一个选择列表,但它显示我为空。。我无法正确检索选项列表。
我该如何解决这个问题?
List<Choice> ch = value.getChoices();
for (Choice Choice : ch) {
System.out.println(choice.getDisplayName());
}
您应该将PropertyDefinition强制转换为适当的子类。您可以在Converter.java中看到他们是如何做到这一点的(请参阅apache化学的来源他们是如何做的)。
谨致问候,魔术