public class PropertyUtil {
public static Object getProperty(StoredObject so, String propertyId) {
ContentStream content = null;
DocumentVersion ver = null;
VersionedDocument verDoc = null;
Folder folder = null;
Document doc = null;
if (so instanceof Content)
content = ((Content) so).getContent(0, 0);
if (so instanceof DocumentVersion)
ver = (DocumentVersion) so;
if (so instanceof VersionedDocument)
verDoc = (VersionedDocument) so;
if (so instanceof Folder)
folder = (Folder) so;
if (so instanceof Document)
doc = (Document) so;
// generic properties:
if (propertyId.equals(PropertyIds.NAME)) {
return so.getName();
}
if (propertyId.equals(PropertyIds.OBJECT_ID)) {
return so.getId();
}
if (propertyId.equals(PropertyIds.OBJECT_TYPE_ID)) {
return so.getTypeId();
}
if (propertyId.equals(PropertyIds.BASE_TYPE_ID)) {
return null; // TOODO: return so.getBaseTypeId());
}
if (propertyId.equals(PropertyIds.CREATED_BY)) {
return so.getCreatedBy();
}
if (propertyId.equals(PropertyIds.CREATION_DATE)) {
return so.getCreatedAt();
}
if (propertyId.equals(PropertyIds.LAST_MODIFIED_BY)) {
return so.getModifiedBy();
}
if (propertyId.equals(PropertyIds.LAST_MODIFICATION_DATE)) {
return so.getModifiedAt();
}
if (propertyId.equals(PropertyIds.CHANGE_TOKEN)) {
return so.getChangeToken();
}
if (ver != null) {
// get version related properties
// not support on a version, only on a versioned document:
// VERSION_SERIES_ID, IS_VERSION_SERIES_CHECKED_OUT,
// VERSION_SERIES_CHECKED_OUT_BY,
// VERSION_SERIES_CHECKED_OUT_ID, IS_LATEST_MAJOR_VERSION,
// IS_LATEST_VERSION
if (propertyId.equals(PropertyIds.IS_MAJOR_VERSION)) {
return ver.isMajor();
}
if (propertyId.equals(PropertyIds.CHECKIN_COMMENT)) {
return ver.getCheckinComment();
}
if (propertyId.equals(PropertyIds.VERSION_LABEL)) {
return ver.getVersionLabel();
}
if (propertyId.equals(PropertyIds.VERSION_SERIES_CHECKED_OUT_ID)) {
return ver.isPwc() ? ver.getId() : null;
}
}
// get versioned document related properties
if (verDoc != null) {
if (propertyId.equals(PropertyIds.VERSION_SERIES_ID)) {
return verDoc.getId();
}
if (propertyId.equals(PropertyIds.IS_VERSION_SERIES_CHECKED_OUT)) {
return verDoc.isCheckedOut();
}
if (propertyId.equals(PropertyIds.VERSION_SERIES_CHECKED_OUT_BY)) {
return verDoc.getCheckedOutBy();
}
}
// Set the content related properties
if (null != content) {