public static RepositoryCapabilities convert(CmisRepositoryCapabilitiesType capabilities) {
if (capabilities == null) {
return null;
}
RepositoryCapabilitiesImpl result = new RepositoryCapabilitiesImpl();
result.setAllVersionsSearchable(capabilities.isCapabilityAllVersionsSearchable());
result.setCapabilityAcl(convert(CapabilityAcl.class, capabilities.getCapabilityACL()));
result.setCapabilityChanges(convert(CapabilityChanges.class, capabilities.getCapabilityChanges()));
result.setCapabilityContentStreamUpdates(convert(CapabilityContentStreamUpdates.class, capabilities
.getCapabilityContentStreamUpdatability()));
result.setCapabilityJoin(convert(CapabilityJoin.class, capabilities.getCapabilityJoin()));
result.setCapabilityQuery(convert(CapabilityQuery.class, capabilities.getCapabilityQuery()));
result.setCapabilityRendition(convert(CapabilityRenditions.class, capabilities.getCapabilityRenditions()));
result.setIsPwcSearchable(capabilities.isCapabilityPWCSearchable());
result.setIsPwcUpdatable(capabilities.isCapabilityPWCUpdatable());
result.setSupportsGetDescendants(capabilities.isCapabilityGetDescendants());
result.setSupportsGetFolderTree(capabilities.isCapabilityGetFolderTree());
result.setSupportsMultifiling(capabilities.isCapabilityMultifiling());
result.setSupportsUnfiling(capabilities.isCapabilityUnfiling());
result.setSupportsVersionSpecificFiling(capabilities.isCapabilityVersionSpecificFiling());
// handle extensions
convertExtension(capabilities, result);
return result;