public static CmisRepositoryInfoType convert(RepositoryInfo repositoryInfo, CmisVersion cmisVersion) {
if (repositoryInfo == null) {
return null;
}
CmisRepositoryInfoType result = new CmisRepositoryInfoType();
result.setAclCapability(convert(repositoryInfo.getAclCapabilities()));
result.setCapabilities(convert(repositoryInfo.getCapabilities(), cmisVersion));
result.setChangesIncomplete(repositoryInfo.getChangesIncomplete());
result.setCmisVersionSupported(repositoryInfo.getCmisVersionSupported());
result.setLatestChangeLogToken(repositoryInfo.getLatestChangeLogToken());
result.setPrincipalAnonymous(repositoryInfo.getPrincipalIdAnonymous());
result.setPrincipalAnyone(repositoryInfo.getPrincipalIdAnyone());
result.setProductName(repositoryInfo.getProductName());
result.setProductVersion(repositoryInfo.getProductVersion());
result.setRepositoryDescription(repositoryInfo.getDescription());
result.setRepositoryId(repositoryInfo.getId());
result.setRepositoryName(repositoryInfo.getName());
result.setRootFolderId(repositoryInfo.getRootFolderId());
result.setThinClientURI(repositoryInfo.getThinClientUri());
result.setVendorName(repositoryInfo.getVendorName());
if (repositoryInfo.getChangesOnType() != null) {
for (BaseTypeId baseType : repositoryInfo.getChangesOnType()) {
if (cmisVersion == CmisVersion.CMIS_1_0 && baseType == BaseTypeId.CMIS_ITEM) {
LOG.warn("Receiver only understands CMIS 1.0 but the Changes On Type list in the Repository info contains the base type Item. "
+ "The Item base type has been removed from the list.");
continue;
}
result.getChangesOnType().add(convert(EnumBaseObjectTypeIds.class, baseType));
}
}
if (cmisVersion != CmisVersion.CMIS_1_0 && repositoryInfo.getExtensionFeatures() != null) {
List<ExtensionFeature> extensionFeatures = repositoryInfo.getExtensionFeatures();
for (ExtensionFeature feature : extensionFeatures) {
CmisExtensionFeatureType target = new CmisExtensionFeatureType();
target.setId(feature.getId());
target.setUrl(feature.getUrl());
target.setCommonName(feature.getCommonName());
target.setVersionLabel(feature.getVersionLabel());
target.setDescription(feature.getDescription());
if (feature.getFeatureData() != null) {
for (Map.Entry<String, String> entry : feature.getFeatureData().entrySet()) {
CmisExtensionFeatureKeyValuePair keyValue = new CmisExtensionFeatureKeyValuePair();
keyValue.setKey(entry.getKey());
keyValue.setValue(entry.getValue());
target.getFeatureData().add(keyValue);
}
}
convertExtension(feature, target);
result.getExtendedFeatures().add(target);
}
}
// handle extensions
convertExtension(repositoryInfo, result);