Как определить, представляет ли CmisObject файл или папку?

В OpenCMIS (или DotCMIS), как определить, представляет ли CmisObject файл или папку?

Спецификация: http://chemistry.apache.org/java/0.5.0/maven/apidocs/org/apache/chemistry/opencmis/client/api/CmisObject.html


person Nicolas Raoul    schedule 29.08.2012    source источник


Ответы (3)


Это работает:

if (cmisObject instanceof Folder) { ... }
if (cmisObject instanceof Document) { ... }

И это работает:

if (cmisObject.getBaseTypeId() == BaseTypeId.CMIS_FOLDER) { ... }
if (cmisObject.getBaseTypeId() == BaseTypeId.CMIS_DOCUMENT) { ... }
person Florian Müller    schedule 29.08.2012

Вот как я нашел (синтаксис C #):

cmisObject is DotCMIS.Client.Impl.Folder

Любая лучшая идея приветствуется!

person Nicolas Raoul    schedule 29.08.2012
comment
Лучше использовать интерфейс, а не класс реализации: cmisObject is IFolder - person Florian Müller; 14.07.2016

Ответ Флориана Мюллера адаптирован и протестирован для DotCMIS:

if (cmisObject is IFolder) { ... }
if (cmisObject is IDocument) { ... }
person Nicolas Raoul    schedule 14.05.2019