/*
* © Copyright IBM Corp. 2013
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package com.ibm.sbt.services.client.connections.cmisfiles.model;
import com.ibm.commons.xml.DOMUtil;
import com.ibm.commons.xml.XMLException;
import com.ibm.commons.xml.xpath.XPathExpression;
import com.ibm.sbt.services.client.base.datahandlers.FieldEntry;
/**
* @author Vimal Dhupar
*/
public enum CMISFileXPath implements FieldEntry {
uid ("a:id"),
id("a:id"),
authorDisplayName("lcmis:displayName"),
authorPrincipalId("lcmis:principalId"),
content("a:content[@type='text/plain']"),
editMediaUrl("a:link[@rel='edit-media']/@href"),
downloadUrl("a:link[@rel='enclosure']/@href"),
serviceDocUrl("a:link[@rel='service']/@href"),
allowableActionsURL("a:link[@rel='http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions']/@href"),
describedByUrl("a:link[@rel='describedby']/@href"),
edited("a:edited"),
relationshipsUrl("a:link[@rel='http://docs.oasis-open.org/ns/cmis/link/200908/relationships']/@href"),
aclUrl("a:link[@rel='http://docs.oasis-open.org/ns/cmis/link/200908/acl']/@href"),
aclHistoryUrl("a:link[@rel='http://www.ibm.com/xmlns/prod/sn/cmis/acl-history']/@href"),
aclRemoverUrl("a:link[@rel='http://www.ibm.com/xmlns/prod/sn/cmis/acl-remover']/@href"),
policiesUrl("http://docs.oasis-open.org/ns/cmis/link/200908/policies']/@href"),
versionHistoryUrl("a:link[@rel='version-history']/@href"),
downloadHistoryUrl("a:link[@rel='http://www.ibm.com/xmlns/prod/sn/cmis/download-history']/@href"),
recommendationsUrl("a:link[@rel='http://www.ibm.com/xmlns/prod/sn/cmis/recommendations']/@href"),
recommendationUrl("a:link[@rel='http://www.ibm.com/xmlns/prod/sn/cmis/recommendation']/@href"),
sharedUrl("a:link[@rel='shared']/@href"),
pathSegment("cmisra:pathSegment"),
cmisName("cmisra:object/cmis:properties/cmis:propertyString[@propertyDefinitionId='cmis:name']/cmis:value"),
cmisObjectId("cmisra:object/cmis:properties/cmis:propertyId[@propertyDefinitionId='cmis:objectId']/cmis:value"),
cmisBaseTypeId("cmisra:object/cmis:properties/cmis:propertyId[@propertyDefinitionId='cmis:baseTypeId']/cmis:value"),
cmisObjectTypeId("cmisra:object/cmis:properties/cmis:propertyId[@propertyDefinitionId='cmis:objectTypeId']/cmis:value"),
modifier("cmisra:object/cmis:properties/cmis:propertyString[@propertyDefinitionId='cmis:lastModifiedBy']"),
modifierName("a:name"),
modifierEmail("a:email"),
modifierUserId("snx:userid"),
modifierUserState("snx:userState"),
modifierDisplayName("lcmis:displayName"),
modifierPrincipalId("lcmis:principalId"),
modificationDate("cmisra:object/cmis:properties/cmis:propertyDateTime[@propertyDefinitionId='cmis:lastModificationDate']/cmis:value"),
changeToken("cmisra:object/cmis:properties/cmis:propertyString[@propertyDefinitionId='cmis:changeToken']/cmis:value"),
isImmutable("cmisra:object/cmis:properties/cmis:propertyBoolean[@propertyDefinitionId='cmis:isImmutable']/cmis:value"),
isLatestVersion("cmisra:object/cmis:properties/cmis:propertyBoolean[@propertyDefinitionId='cmis:isLatestVersion']/cmis:value"),
isMajorVersion("cmisra:object/cmis:properties/cmis:propertyBoolean[@propertyDefinitionId='cmis:isMajorVersion']/cmis:value"),
isLatestMajorVersion("cmisra:object/cmis:properties/cmis:propertyBoolean[@propertyDefinitionId='cmis:isLatestMajorVersion']/cmis:value"),
versionLabel("cmisra:object/cmis:properties/cmis:propertyString[@propertyDefinitionId='cmis:versionLabel']/cmis:value"),
versionSeriesId("cmisra:object/cmis:properties/cmis:propertyString[@propertyDefinitionId='cmis:versionSeriesId']/cmis:value"),
versionSeriesCheckedOutBy("cmisra:object/cmis:properties/cmis:propertyString[@propertyDefinitionId='cmis:versionSeriesCheckedOutBy']/cmis:value"),
versionSeriesCheckedOutId("cmisra:object/cmis:properties/cmis:propertyId[@propertyDefinitionId='cmis:versionSeriesCheckedOutId']/cmis:value"),
checkinComment("cmisra:object/cmis:properties/cmis:propertyString[@propertyDefinitionId='cmis:checkinComment']/cmis:value"),
contentStreamLength("cmisra:object/cmis:properties/cmis:propertyInteger[@propertyDefinitionId='cmis:contentStreamLength']/cmis:value"),
contentStreamMimeType("cmisra:object/cmis:properties/cmis:propertyString[@propertyDefinitionId='cmis:contentStreamMimeType']/cmis:value"),
contentStreamFileName("cmisra:object/cmis:properties/cmis:propertyString[@propertyDefinitionId='cmis:contentStreamFileName']/cmis:value"),
contentStreamId("cmisra:object/cmis:properties/cmis:propertyId[@propertyDefinitionId='cmis:contentStreamId']/cmis:value"),
repositoryId("cmisra:object/cmis:properties/cmis:propertyId[@propertyDefinitionId='snx:repositoryId']/cmis:value"),
commentCount("cmisra:object/cmis:properties/cmis:propertyInteger[@propertyDefinitionId='snx:commentCount']/cmis:value"),
downloadCount("cmisra:object/cmis:properties/cmis:propertyInteger[@propertyDefinitionId='snx:downloadCount']/cmis:value"),
downloadCountAnon("cmisra:object/cmis:properties/cmis:propertyInteger[@propertyDefinitionId='snx:downloadCountAnon']/cmis:value"),
sizeAppliedToQuota("cmisra:object/cmis:properties/cmis:propertyInteger[@propertyDefinitionId='snx:sizeAppliedToQuota']/cmis:value"),
language("cmisra:object/cmis:properties/cmis:propertyString[@propertyDefinitionId='snx:language']/cmis:value"),
summary("cmisra:object/cmis:properties/cmis:propertyString[@propertyDefinitionId='snx:summary']/cmis:value"),
contentStreamFileExt("cmisra:object/cmis:properties/cmis:propertyString[@propertyDefinitionId='snx:contentStreamFileExt']/cmis:value"),
isPublic("cmisra:object/cmis:properties/cmis:propertyBoolean[@propertyDefinitionId='snx:isPublic']/cmis:value"),
visibility("cmisra:object/cmis:properties/cmis:propertyString[@propertyDefinitionId='snx:visibilityComputed']/cmis:value"),
isSharedViral("cmisra:object/cmis:properties/cmis:propertyBoolean[@propertyDefinitionId='snx:isSharedViral']/cmis:value"),
repositoryType("cmisra:object/cmis:properties/cmis:propertyString[@propertyDefinitionId='snx:repositoryType']/cmis:value"),
recommendationCount("cmisra:object/cmis:properties/cmis:propertyInteger[@propertyDefinitionId='snx:recommendationCount']/cmis:value"),
isRecommendedByCaller("cmisra:object/cmis:properties/cmis:propertyBoolean[@propertyDefinitionId='snx:isRecommendedByCaller']/cmis:value"),
contentStreamLastModified("cmisra:object/cmis:properties/cmis:propertyDateTime[@propertyDefinitionId='snx:contentStreamLastModified']/cmis:value"),
lockType("cmisra:object/cmis:properties/cmis:propertyString[@propertyDefinitionId='snx:lockType']/cmis:value"),
lockedBy("cmisra:object/cmis:properties/cmis:propertyString[@propertyDefinitionId='snx:lockedBy']/cmis:value"),
lockedWhen("cmisra:object/cmis:properties/cmis:propertyDateTime[@propertyDefinitionId='snx:lockedWhen']/cmis:value"),
sharePermission("cmisra:object/cmis:properties/cmis:propertyString[@propertyDefinitionId='snx:sharePermission']/cmis:value");
private final XPathExpression path;
private CMISFileXPath(String xpath) {
XPathExpression xpathExpr = null;
try {
xpathExpr = DOMUtil.createXPath(xpath);
} catch (XMLException e) {
e.printStackTrace();
}
this.path = xpathExpr;
}
@Override
public XPathExpression getPath() {
return path;
}
@Override
public String getName() {
return this.name();
}
}