You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by fm...@apache.org on 2013/05/11 23:19:48 UTC
svn commit: r1481420 [6/7] - in
/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src:
main/java/org/apache/chemistry/opencmis/server/impl/
main/java/org/apache/chemistry/opencmis/server/impl/atompub/
main/java/org/...
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/ObjectService.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/ObjectService.java?rev=1481420&r1=1481419&r2=1481420&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/ObjectService.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/ObjectService.java Sat May 11 21:19:48 2013
@@ -33,28 +33,6 @@ import static org.apache.chemistry.openc
import static org.apache.chemistry.opencmis.commons.impl.Constants.PARAM_TARGET_FOLDER_ID;
import static org.apache.chemistry.opencmis.commons.impl.Constants.PARAM_TOKEN;
import static org.apache.chemistry.opencmis.commons.impl.Constants.PARAM_VERSIONIG_STATE;
-import static org.apache.chemistry.opencmis.server.impl.atompub.AtomPubUtils.RESOURCE_CONTENT;
-import static org.apache.chemistry.opencmis.server.impl.atompub.AtomPubUtils.compileBaseUrl;
-import static org.apache.chemistry.opencmis.server.impl.atompub.AtomPubUtils.compileUrl;
-import static org.apache.chemistry.opencmis.server.impl.browser.BrowserBindingUtils.CONTEXT_OBJECT_ID;
-import static org.apache.chemistry.opencmis.server.impl.browser.BrowserBindingUtils.CONTEXT_OBJECT_TYPE_ID;
-import static org.apache.chemistry.opencmis.server.impl.browser.BrowserBindingUtils.closeContentStream;
-import static org.apache.chemistry.opencmis.server.impl.browser.BrowserBindingUtils.createAddAcl;
-import static org.apache.chemistry.opencmis.server.impl.browser.BrowserBindingUtils.createContentStream;
-import static org.apache.chemistry.opencmis.server.impl.browser.BrowserBindingUtils.createCookieValue;
-import static org.apache.chemistry.opencmis.server.impl.browser.BrowserBindingUtils.createNewProperties;
-import static org.apache.chemistry.opencmis.server.impl.browser.BrowserBindingUtils.createPolicies;
-import static org.apache.chemistry.opencmis.server.impl.browser.BrowserBindingUtils.createRemoveAcl;
-import static org.apache.chemistry.opencmis.server.impl.browser.BrowserBindingUtils.createUpdateProperties;
-import static org.apache.chemistry.opencmis.server.impl.browser.BrowserBindingUtils.getSimpleObject;
-import static org.apache.chemistry.opencmis.server.impl.browser.BrowserBindingUtils.setCookie;
-import static org.apache.chemistry.opencmis.server.impl.browser.BrowserBindingUtils.setStatus;
-import static org.apache.chemistry.opencmis.server.impl.browser.BrowserBindingUtils.writeEmpty;
-import static org.apache.chemistry.opencmis.server.impl.browser.BrowserBindingUtils.writeJSON;
-import static org.apache.chemistry.opencmis.server.shared.HttpUtils.getBigIntegerParameter;
-import static org.apache.chemistry.opencmis.server.shared.HttpUtils.getBooleanParameter;
-import static org.apache.chemistry.opencmis.server.shared.HttpUtils.getEnumParameter;
-import static org.apache.chemistry.opencmis.server.shared.HttpUtils.getStringParameter;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
@@ -93,694 +71,735 @@ import org.apache.chemistry.opencmis.com
import org.apache.chemistry.opencmis.commons.server.CallContext;
import org.apache.chemistry.opencmis.commons.server.CmisService;
import org.apache.chemistry.opencmis.commons.spi.Holder;
-import org.apache.chemistry.opencmis.server.shared.HttpUtils;
/**
* Object Service operations.
*/
-public final class ObjectService {
+public class ObjectService {
private static final int BUFFER_SIZE = 64 * 1024;
- private ObjectService() {
- }
-
/**
* Create document.
*/
- public static void createDocument(CallContext context, CmisService service, String repositoryId,
- HttpServletRequest request, HttpServletResponse response) throws Exception {
- // get parameters
- String folderId = (String) context.get(CONTEXT_OBJECT_ID);
- VersioningState versioningState = getEnumParameter(request, PARAM_VERSIONIG_STATE, VersioningState.class);
- String token = getStringParameter(request, PARAM_TOKEN);
- boolean succinct = getBooleanParameter(request, Constants.CONTROL_SUCCINCT, false);
+ public static class CreateDocument extends AbstractBrowserServiceCall {
+ public void serve(CallContext context, CmisService service, String repositoryId, HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+ // get parameters
+ String folderId = ((BrowserCallContextImpl) context).getObjectId();
+ VersioningState versioningState = getEnumParameter(request, PARAM_VERSIONIG_STATE, VersioningState.class);
+ String token = getStringParameter(request, PARAM_TOKEN);
+ boolean succinct = getBooleanParameter(request, Constants.CONTROL_SUCCINCT, false);
+
+ // execute
+ ControlParser cp = new ControlParser(request);
+ TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
+
+ ContentStream contentStream = createContentStream(request);
+
+ String newObjectId = null;
+ try {
+ newObjectId = service
+ .createDocument(repositoryId, createNewProperties(cp, typeCache), folderId, contentStream,
+ versioningState, createPolicies(cp), createAddAcl(cp), createRemoveAcl(cp), null);
+ } finally {
+ closeContentStream(contentStream);
+ }
- // execute
- ControlParser cp = new ControlParser(request);
- TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
+ ObjectData object = getSimpleObject(service, repositoryId, newObjectId);
+ if (object == null) {
+ throw new CmisRuntimeException("New document is null!");
+ }
- ContentStream contentStream = createContentStream(request);
+ // return object
+ JSONObject jsonObject = JSONConverter.convert(object, typeCache, JSONConverter.PropertyMode.OBJECT,
+ succinct);
+
+ setStatus(request, response, HttpServletResponse.SC_CREATED);
+ setCookie(request, response, repositoryId, token,
+ createCookieValue(HttpServletResponse.SC_CREATED, object.getId(), null, null));
- String newObjectId = null;
- try {
- newObjectId = service.createDocument(repositoryId, createNewProperties(cp, typeCache), folderId,
- contentStream, versioningState, createPolicies(cp), createAddAcl(cp), createRemoveAcl(cp), null);
- } finally {
- closeContentStream(contentStream);
- }
-
- ObjectData object = getSimpleObject(service, repositoryId, newObjectId);
- if (object == null) {
- throw new CmisRuntimeException("New document is null!");
+ writeJSON(jsonObject, request, response);
}
-
- // return object
- JSONObject jsonObject = JSONConverter.convert(object, typeCache, JSONConverter.PropertyMode.OBJECT, succinct);
-
- setStatus(request, response, HttpServletResponse.SC_CREATED);
- setCookie(request, response, repositoryId, token,
- createCookieValue(HttpServletResponse.SC_CREATED, object.getId(), null, null));
-
- writeJSON(jsonObject, request, response);
}
/**
* Create document from source.
*/
- public static void createDocumentFromSource(CallContext context, CmisService service, String repositoryId,
- HttpServletRequest request, HttpServletResponse response) throws Exception {
- // get parameters
- String folderId = (String) context.get(CONTEXT_OBJECT_ID);
- String sourceId = getStringParameter(request, PARAM_SOURCE_ID);
- VersioningState versioningState = getEnumParameter(request, PARAM_VERSIONIG_STATE, VersioningState.class);
- String token = getStringParameter(request, PARAM_TOKEN);
- boolean succinct = getBooleanParameter(request, Constants.CONTROL_SUCCINCT, false);
-
- // execute
- ControlParser cp = new ControlParser(request);
- TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
-
- ObjectData sourceDoc = getSimpleObject(service, repositoryId, sourceId);
- PropertyData<?> sourceTypeId = sourceDoc.getProperties().getProperties().get(PropertyIds.OBJECT_TYPE_ID);
- if (sourceTypeId == null || sourceTypeId.getFirstValue() == null) {
- throw new CmisRuntimeException("Source object has no type!?!");
- }
-
- String newObjectId = service.createDocumentFromSource(
- repositoryId,
- sourceId,
- createUpdateProperties(cp, sourceTypeId.getFirstValue().toString(), null,
- Collections.singletonList(sourceId), typeCache), folderId, versioningState, createPolicies(cp),
- createAddAcl(cp), createRemoveAcl(cp), null);
-
- ObjectData object = getSimpleObject(service, repositoryId, newObjectId);
- if (object == null) {
- throw new CmisRuntimeException("New document is null!");
- }
-
- // return object
- JSONObject jsonObject = JSONConverter.convert(object, typeCache, JSONConverter.PropertyMode.OBJECT, succinct);
-
- setStatus(request, response, HttpServletResponse.SC_CREATED);
- setCookie(request, response, repositoryId, token,
- createCookieValue(HttpServletResponse.SC_CREATED, object.getId(), null, null));
+ public static class CreateDocumentFromSource extends AbstractBrowserServiceCall {
+ public void serve(CallContext context, CmisService service, String repositoryId, HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+ // get parameters
+ String folderId = ((BrowserCallContextImpl) context).getObjectId();
+ String sourceId = getStringParameter(request, PARAM_SOURCE_ID);
+ VersioningState versioningState = getEnumParameter(request, PARAM_VERSIONIG_STATE, VersioningState.class);
+ String token = getStringParameter(request, PARAM_TOKEN);
+ boolean succinct = getBooleanParameter(request, Constants.CONTROL_SUCCINCT, false);
+
+ // execute
+ ControlParser cp = new ControlParser(request);
+ TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
+
+ ObjectData sourceDoc = getSimpleObject(service, repositoryId, sourceId);
+ PropertyData<?> sourceTypeId = sourceDoc.getProperties().getProperties().get(PropertyIds.OBJECT_TYPE_ID);
+ if (sourceTypeId == null || sourceTypeId.getFirstValue() == null) {
+ throw new CmisRuntimeException("Source object has no type!?!");
+ }
+
+ String newObjectId = service.createDocumentFromSource(
+ repositoryId,
+ sourceId,
+ createUpdateProperties(cp, sourceTypeId.getFirstValue().toString(), null,
+ Collections.singletonList(sourceId), typeCache), folderId, versioningState,
+ createPolicies(cp), createAddAcl(cp), createRemoveAcl(cp), null);
+
+ ObjectData object = getSimpleObject(service, repositoryId, newObjectId);
+ if (object == null) {
+ throw new CmisRuntimeException("New document is null!");
+ }
- writeJSON(jsonObject, request, response);
+ // return object
+ JSONObject jsonObject = JSONConverter.convert(object, typeCache, JSONConverter.PropertyMode.OBJECT,
+ succinct);
+
+ setStatus(request, response, HttpServletResponse.SC_CREATED);
+ setCookie(request, response, repositoryId, token,
+ createCookieValue(HttpServletResponse.SC_CREATED, object.getId(), null, null));
+
+ writeJSON(jsonObject, request, response);
+ }
}
/**
* Create folder.
*/
- public static void createFolder(CallContext context, CmisService service, String repositoryId,
- HttpServletRequest request, HttpServletResponse response) throws Exception {
- // get parameters
- String folderId = (String) context.get(CONTEXT_OBJECT_ID);
- String token = getStringParameter(request, PARAM_TOKEN);
- boolean succinct = getBooleanParameter(request, Constants.CONTROL_SUCCINCT, false);
-
- // execute
- ControlParser cp = new ControlParser(request);
- TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
+ public static class CreateFolder extends AbstractBrowserServiceCall {
+ public void serve(CallContext context, CmisService service, String repositoryId, HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+ // get parameters
+ String folderId = ((BrowserCallContextImpl) context).getObjectId();
+ String token = getStringParameter(request, PARAM_TOKEN);
+ boolean succinct = getBooleanParameter(request, Constants.CONTROL_SUCCINCT, false);
+
+ // execute
+ ControlParser cp = new ControlParser(request);
+ TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
+
+ String newObjectId = service.createFolder(repositoryId, createNewProperties(cp, typeCache), folderId,
+ createPolicies(cp), createAddAcl(cp), createRemoveAcl(cp), null);
+
+ ObjectData object = getSimpleObject(service, repositoryId, newObjectId);
+ if (object == null) {
+ throw new CmisRuntimeException("New folder is null!");
+ }
- String newObjectId = service.createFolder(repositoryId, createNewProperties(cp, typeCache), folderId,
- createPolicies(cp), createAddAcl(cp), createRemoveAcl(cp), null);
+ // return object
+ JSONObject jsonObject = JSONConverter.convert(object, typeCache, JSONConverter.PropertyMode.OBJECT,
+ succinct);
+
+ setStatus(request, response, HttpServletResponse.SC_CREATED);
+ setCookie(request, response, repositoryId, token,
+ createCookieValue(HttpServletResponse.SC_CREATED, object.getId(), null, null));
- ObjectData object = getSimpleObject(service, repositoryId, newObjectId);
- if (object == null) {
- throw new CmisRuntimeException("New folder is null!");
+ writeJSON(jsonObject, request, response);
}
-
- // return object
- JSONObject jsonObject = JSONConverter.convert(object, typeCache, JSONConverter.PropertyMode.OBJECT, succinct);
-
- setStatus(request, response, HttpServletResponse.SC_CREATED);
- setCookie(request, response, repositoryId, token,
- createCookieValue(HttpServletResponse.SC_CREATED, object.getId(), null, null));
-
- writeJSON(jsonObject, request, response);
}
/**
* Create policy.
*/
- public static void createPolicy(CallContext context, CmisService service, String repositoryId,
- HttpServletRequest request, HttpServletResponse response) throws Exception {
- // get parameters
- String folderId = (String) context.get(CONTEXT_OBJECT_ID);
- String token = getStringParameter(request, PARAM_TOKEN);
- boolean succinct = getBooleanParameter(request, Constants.CONTROL_SUCCINCT, false);
-
- // execute
- ControlParser cp = new ControlParser(request);
- TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
+ public static class CreatePolicy extends AbstractBrowserServiceCall {
+ public void serve(CallContext context, CmisService service, String repositoryId, HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+ // get parameters
+ String folderId = ((BrowserCallContextImpl) context).getObjectId();
+ String token = getStringParameter(request, PARAM_TOKEN);
+ boolean succinct = getBooleanParameter(request, Constants.CONTROL_SUCCINCT, false);
+
+ // execute
+ ControlParser cp = new ControlParser(request);
+ TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
+
+ String newObjectId = service.createPolicy(repositoryId, createNewProperties(cp, typeCache), folderId,
+ createPolicies(cp), createAddAcl(cp), createRemoveAcl(cp), null);
+
+ ObjectData object = getSimpleObject(service, repositoryId, newObjectId);
+ if (object == null) {
+ throw new CmisRuntimeException("New policy is null!");
+ }
- String newObjectId = service.createPolicy(repositoryId, createNewProperties(cp, typeCache), folderId,
- createPolicies(cp), createAddAcl(cp), createRemoveAcl(cp), null);
+ // return object
+ JSONObject jsonObject = JSONConverter.convert(object, typeCache, JSONConverter.PropertyMode.OBJECT,
+ succinct);
+
+ setStatus(request, response, HttpServletResponse.SC_CREATED);
+ setCookie(request, response, repositoryId, token,
+ createCookieValue(HttpServletResponse.SC_CREATED, object.getId(), null, null));
- ObjectData object = getSimpleObject(service, repositoryId, newObjectId);
- if (object == null) {
- throw new CmisRuntimeException("New policy is null!");
+ writeJSON(jsonObject, request, response);
}
-
- // return object
- JSONObject jsonObject = JSONConverter.convert(object, typeCache, JSONConverter.PropertyMode.OBJECT, succinct);
-
- setStatus(request, response, HttpServletResponse.SC_CREATED);
- setCookie(request, response, repositoryId, token,
- createCookieValue(HttpServletResponse.SC_CREATED, object.getId(), null, null));
-
- writeJSON(jsonObject, request, response);
}
/**
* Create Item.
*/
- public static void createItem(CallContext context, CmisService service, String repositoryId,
- HttpServletRequest request, HttpServletResponse response) throws Exception {
- // get parameters
- String folderId = (String) context.get(CONTEXT_OBJECT_ID);
- String token = getStringParameter(request, PARAM_TOKEN);
- boolean succinct = getBooleanParameter(request, Constants.CONTROL_SUCCINCT, false);
-
- // execute
- ControlParser cp = new ControlParser(request);
- TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
+ public static class CreateItem extends AbstractBrowserServiceCall {
+ public void serve(CallContext context, CmisService service, String repositoryId, HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+ // get parameters
+ String folderId = ((BrowserCallContextImpl) context).getObjectId();
+ String token = getStringParameter(request, PARAM_TOKEN);
+ boolean succinct = getBooleanParameter(request, Constants.CONTROL_SUCCINCT, false);
+
+ // execute
+ ControlParser cp = new ControlParser(request);
+ TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
+
+ String newObjectId = service.createItem(repositoryId, createNewProperties(cp, typeCache), folderId,
+ createPolicies(cp), createAddAcl(cp), createRemoveAcl(cp), null);
+
+ ObjectData object = getSimpleObject(service, repositoryId, newObjectId);
+ if (object == null) {
+ throw new CmisRuntimeException("New item is null!");
+ }
- String newObjectId = service.createItem(repositoryId, createNewProperties(cp, typeCache), folderId,
- createPolicies(cp), createAddAcl(cp), createRemoveAcl(cp), null);
+ // return object
+ JSONObject jsonObject = JSONConverter.convert(object, typeCache, JSONConverter.PropertyMode.OBJECT,
+ succinct);
+
+ setStatus(request, response, HttpServletResponse.SC_CREATED);
+ setCookie(request, response, repositoryId, token,
+ createCookieValue(HttpServletResponse.SC_CREATED, object.getId(), null, null));
- ObjectData object = getSimpleObject(service, repositoryId, newObjectId);
- if (object == null) {
- throw new CmisRuntimeException("New item is null!");
+ writeJSON(jsonObject, request, response);
}
-
- // return object
- JSONObject jsonObject = JSONConverter.convert(object, typeCache, JSONConverter.PropertyMode.OBJECT, succinct);
-
- setStatus(request, response, HttpServletResponse.SC_CREATED);
- setCookie(request, response, repositoryId, token,
- createCookieValue(HttpServletResponse.SC_CREATED, object.getId(), null, null));
-
- writeJSON(jsonObject, request, response);
}
/**
* Create relationship.
*/
- public static void createRelationship(CallContext context, CmisService service, String repositoryId,
- HttpServletRequest request, HttpServletResponse response) throws Exception {
- // get parameters
- String token = getStringParameter(request, PARAM_TOKEN);
- boolean succinct = getBooleanParameter(request, Constants.CONTROL_SUCCINCT, false);
-
- // execute
- ControlParser cp = new ControlParser(request);
- TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
+ public static class CreateRelationship extends AbstractBrowserServiceCall {
+ public void serve(CallContext context, CmisService service, String repositoryId, HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+ // get parameters
+ String token = getStringParameter(request, PARAM_TOKEN);
+ boolean succinct = getBooleanParameter(request, Constants.CONTROL_SUCCINCT, false);
+
+ // execute
+ ControlParser cp = new ControlParser(request);
+ TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
+
+ String newObjectId = service.createRelationship(repositoryId, createNewProperties(cp, typeCache),
+ createPolicies(cp), createAddAcl(cp), createRemoveAcl(cp), null);
+
+ ObjectData object = getSimpleObject(service, repositoryId, newObjectId);
+ if (object == null) {
+ throw new CmisRuntimeException("New relationship is null!");
+ }
- String newObjectId = service.createRelationship(repositoryId, createNewProperties(cp, typeCache),
- createPolicies(cp), createAddAcl(cp), createRemoveAcl(cp), null);
+ // return object
+ JSONObject jsonObject = JSONConverter.convert(object, typeCache, JSONConverter.PropertyMode.OBJECT,
+ succinct);
+
+ setStatus(request, response, HttpServletResponse.SC_CREATED);
+ setCookie(request, response, repositoryId, token,
+ createCookieValue(HttpServletResponse.SC_CREATED, object.getId(), null, null));
- ObjectData object = getSimpleObject(service, repositoryId, newObjectId);
- if (object == null) {
- throw new CmisRuntimeException("New relationship is null!");
+ writeJSON(jsonObject, request, response);
}
-
- // return object
- JSONObject jsonObject = JSONConverter.convert(object, typeCache, JSONConverter.PropertyMode.OBJECT, succinct);
-
- setStatus(request, response, HttpServletResponse.SC_CREATED);
- setCookie(request, response, repositoryId, token,
- createCookieValue(HttpServletResponse.SC_CREATED, object.getId(), null, null));
-
- writeJSON(jsonObject, request, response);
}
/**
* updateProperties.
*/
- public static void updateProperties(CallContext context, CmisService service, String repositoryId,
- HttpServletRequest request, HttpServletResponse response) throws Exception {
- // get parameters
- String objectId = (String) context.get(CONTEXT_OBJECT_ID);
- String typeId = (String) context.get(CONTEXT_OBJECT_TYPE_ID);
- String changeToken = getStringParameter(request, Constants.CONTROL_CHANGE_TOKEN);
- String token = getStringParameter(request, PARAM_TOKEN);
- boolean succinct = getBooleanParameter(request, Constants.CONTROL_SUCCINCT, false);
-
- // execute
- ControlParser cp = new ControlParser(request);
- TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
- Holder<String> objectIdHolder = new Holder<String>(objectId);
- Holder<String> changeTokenHolder = (changeToken == null ? null : new Holder<String>(changeToken));
-
- service.updateProperties(repositoryId, objectIdHolder, changeTokenHolder,
- createUpdateProperties(cp, typeId, null, Collections.singletonList(objectId), typeCache), null);
-
- String newObjectId = (objectIdHolder.getValue() == null ? objectId : objectIdHolder.getValue());
+ public static class UpdateProperties extends AbstractBrowserServiceCall {
+ public void serve(CallContext context, CmisService service, String repositoryId, HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+ // get parameters
+ String objectId = ((BrowserCallContextImpl) context).getObjectId();
+ String typeId = ((BrowserCallContextImpl) context).getTypeId();
+ String changeToken = getStringParameter(request, Constants.CONTROL_CHANGE_TOKEN);
+ String token = getStringParameter(request, PARAM_TOKEN);
+ boolean succinct = getBooleanParameter(request, Constants.CONTROL_SUCCINCT, false);
+
+ // execute
+ ControlParser cp = new ControlParser(request);
+ TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
+ Holder<String> objectIdHolder = new Holder<String>(objectId);
+ Holder<String> changeTokenHolder = (changeToken == null ? null : new Holder<String>(changeToken));
+
+ service.updateProperties(repositoryId, objectIdHolder, changeTokenHolder,
+ createUpdateProperties(cp, typeId, null, Collections.singletonList(objectId), typeCache), null);
+
+ String newObjectId = (objectIdHolder.getValue() == null ? objectId : objectIdHolder.getValue());
+
+ ObjectData object = getSimpleObject(service, repositoryId, newObjectId);
+ if (object == null) {
+ throw new CmisRuntimeException("Object is null!");
+ }
- ObjectData object = getSimpleObject(service, repositoryId, newObjectId);
- if (object == null) {
- throw new CmisRuntimeException("Object is null!");
- }
+ // return object
+ JSONObject jsonObject = JSONConverter.convert(object, typeCache, JSONConverter.PropertyMode.OBJECT,
+ succinct);
+
+ int status = HttpServletResponse.SC_OK;
+ if (!objectId.equals(newObjectId)) {
+ status = HttpServletResponse.SC_CREATED;
+ }
- // return object
- JSONObject jsonObject = JSONConverter.convert(object, typeCache, JSONConverter.PropertyMode.OBJECT, succinct);
+ setStatus(request, response, status);
+ setCookie(request, response, repositoryId, token, createCookieValue(status, object.getId(), null, null));
- int status = HttpServletResponse.SC_OK;
- if (!objectId.equals(newObjectId)) {
- status = HttpServletResponse.SC_CREATED;
+ writeJSON(jsonObject, request, response);
}
-
- setStatus(request, response, status);
- setCookie(request, response, repositoryId, token, createCookieValue(status, object.getId(), null, null));
-
- writeJSON(jsonObject, request, response);
}
/**
* bulkUpdateProperties.
*/
- public static void bulkUpdateProperties(CallContext context, CmisService service, String repositoryId,
- HttpServletRequest request, HttpServletResponse response) throws Exception {
- ControlParser cp = new ControlParser(request);
+ public static class BulkUpdateProperties extends AbstractBrowserServiceCall {
+ public void serve(CallContext context, CmisService service, String repositoryId, HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+ ControlParser cp = new ControlParser(request);
- // get object ids and change tokens
- List<BulkUpdateObjectIdAndChangeToken> objectIdAndChangeToken = new ArrayList<BulkUpdateObjectIdAndChangeToken>();
+ // get object ids and change tokens
+ List<BulkUpdateObjectIdAndChangeToken> objectIdAndChangeToken = new ArrayList<BulkUpdateObjectIdAndChangeToken>();
- List<String> objectIds = cp.getValues(Constants.CONTROL_OBJECT_ID);
- List<String> changeTokens = cp.getValues(Constants.CONTROL_CHANGE_TOKEN);
+ List<String> objectIds = cp.getValues(Constants.CONTROL_OBJECT_ID);
+ List<String> changeTokens = cp.getValues(Constants.CONTROL_CHANGE_TOKEN);
- if (objectIds == null || objectIds.size() == 0) {
- throw new CmisInvalidArgumentException("No object ids provided!");
- }
-
- int n = objectIds.size();
- for (int i = 0; i < n; i++) {
- String id = objectIds.get(i);
- String changeToken = (changeTokens != null && changeTokens.size() > i ? changeTokens.get(i) : null);
- objectIdAndChangeToken.add(new BulkUpdateObjectIdAndChangeTokenImpl(id, changeToken));
- }
-
- // get secondary type ids
- List<String> addSecondaryTypes = cp.getValues(Constants.CONTROL_ADD_SECONDARY_TYPE);
- List<String> removeSecondaryTypes = cp.getValues(Constants.CONTROL_REMOVE_SECONDARY_TYPE);
-
- // compile properties
- TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
-
- Properties properties = createUpdateProperties(cp, null, addSecondaryTypes, objectIds, typeCache);
+ if (objectIds == null || objectIds.size() == 0) {
+ throw new CmisInvalidArgumentException("No object ids provided!");
+ }
- // execute
- List<BulkUpdateObjectIdAndChangeToken> result = service.bulkUpdateProperties(repositoryId,
- objectIdAndChangeToken, properties, addSecondaryTypes, removeSecondaryTypes, null);
+ int n = objectIds.size();
+ for (int i = 0; i < n; i++) {
+ String id = objectIds.get(i);
+ String changeToken = (changeTokens != null && changeTokens.size() > i ? changeTokens.get(i) : null);
+ objectIdAndChangeToken.add(new BulkUpdateObjectIdAndChangeTokenImpl(id, changeToken));
+ }
- // return result
- JSONArray jsonList = new JSONArray();
- if (result != null) {
- for (BulkUpdateObjectIdAndChangeToken oc : result) {
- if (oc != null) {
- jsonList.add(JSONConverter.convert(oc));
+ // get secondary type ids
+ List<String> addSecondaryTypes = cp.getValues(Constants.CONTROL_ADD_SECONDARY_TYPE);
+ List<String> removeSecondaryTypes = cp.getValues(Constants.CONTROL_REMOVE_SECONDARY_TYPE);
+
+ // compile properties
+ TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
+
+ Properties properties = createUpdateProperties(cp, null, addSecondaryTypes, objectIds, typeCache);
+
+ // execute
+ List<BulkUpdateObjectIdAndChangeToken> result = service.bulkUpdateProperties(repositoryId,
+ objectIdAndChangeToken, properties, addSecondaryTypes, removeSecondaryTypes, null);
+
+ // return result
+ JSONArray jsonList = new JSONArray();
+ if (result != null) {
+ for (BulkUpdateObjectIdAndChangeToken oc : result) {
+ if (oc != null) {
+ jsonList.add(JSONConverter.convert(oc));
+ }
}
}
- }
- response.setStatus(HttpServletResponse.SC_OK);
- writeJSON(jsonList, request, response);
+ response.setStatus(HttpServletResponse.SC_OK);
+ writeJSON(jsonList, request, response);
+ }
}
/**
* getProperties.
*/
- public static void getProperties(CallContext context, CmisService service, String repositoryId,
- HttpServletRequest request, HttpServletResponse response) throws Exception {
- // get parameters
- String objectId = (String) context.get(CONTEXT_OBJECT_ID);
- ReturnVersion returnVersion = getEnumParameter(request, PARAM_RETURN_VERSION, ReturnVersion.class);
- String filter = getStringParameter(request, PARAM_FILTER);
- boolean succinct = getBooleanParameter(request, Constants.PARAM_SUCCINCT, false);
-
- // execute
- Properties properties;
-
- if (returnVersion == ReturnVersion.LATEST || returnVersion == ReturnVersion.LASTESTMAJOR) {
- properties = service.getPropertiesOfLatestVersion(repositoryId, objectId, null,
- returnVersion == ReturnVersion.LASTESTMAJOR, filter, null);
- } else {
- properties = service.getProperties(repositoryId, objectId, filter, null);
- }
-
- if (properties == null) {
- throw new CmisRuntimeException("Properties are null!");
- }
-
- // return object
- TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
- JSONObject jsonObject = JSONConverter.convert(properties, objectId, typeCache,
- JSONConverter.PropertyMode.OBJECT, succinct);
+ public static class GetProperties extends AbstractBrowserServiceCall {
+ public void serve(CallContext context, CmisService service, String repositoryId, HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+ // get parameters
+ String objectId = ((BrowserCallContextImpl) context).getObjectId();
+ ReturnVersion returnVersion = getEnumParameter(request, PARAM_RETURN_VERSION, ReturnVersion.class);
+ String filter = getStringParameter(request, PARAM_FILTER);
+ boolean succinct = getBooleanParameter(request, Constants.PARAM_SUCCINCT, false);
+
+ // execute
+ Properties properties;
+
+ if (returnVersion == ReturnVersion.LATEST || returnVersion == ReturnVersion.LASTESTMAJOR) {
+ properties = service.getPropertiesOfLatestVersion(repositoryId, objectId, null,
+ returnVersion == ReturnVersion.LASTESTMAJOR, filter, null);
+ } else {
+ properties = service.getProperties(repositoryId, objectId, filter, null);
+ }
- response.setStatus(HttpServletResponse.SC_OK);
- writeJSON(jsonObject, request, response);
+ if (properties == null) {
+ throw new CmisRuntimeException("Properties are null!");
+ }
+
+ // return object
+ TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
+ JSONObject jsonObject = JSONConverter.convert(properties, objectId, typeCache,
+ JSONConverter.PropertyMode.OBJECT, succinct);
+
+ response.setStatus(HttpServletResponse.SC_OK);
+ writeJSON(jsonObject, request, response);
+ }
}
/**
* getObject.
*/
- public static void getObject(CallContext context, CmisService service, String repositoryId,
- HttpServletRequest request, HttpServletResponse response) throws Exception {
- // get parameters
- String objectId = (String) context.get(CONTEXT_OBJECT_ID);
- ReturnVersion returnVersion = getEnumParameter(request, PARAM_RETURN_VERSION, ReturnVersion.class);
- String filter = getStringParameter(request, PARAM_FILTER);
- Boolean includeAllowableActions = getBooleanParameter(request, PARAM_ALLOWABLE_ACTIONS);
- IncludeRelationships includeRelationships = getEnumParameter(request, PARAM_RELATIONSHIPS,
- IncludeRelationships.class);
- String renditionFilter = getStringParameter(request, PARAM_RENDITION_FILTER);
- Boolean includePolicyIds = getBooleanParameter(request, PARAM_POLICY_IDS);
- Boolean includeAcl = getBooleanParameter(request, PARAM_ACL);
- boolean succinct = getBooleanParameter(request, Constants.PARAM_SUCCINCT, false);
-
- // execute
- ObjectData object;
-
- if (returnVersion == ReturnVersion.LATEST || returnVersion == ReturnVersion.LASTESTMAJOR) {
- object = service.getObjectOfLatestVersion(repositoryId, objectId, null,
- returnVersion == ReturnVersion.LASTESTMAJOR, filter, includeAllowableActions, includeRelationships,
- renditionFilter, includePolicyIds, includeAcl, null);
- } else {
- object = service.getObject(repositoryId, objectId, filter, includeAllowableActions, includeRelationships,
- renditionFilter, includePolicyIds, includeAcl, null);
- }
-
- if (object == null) {
- throw new CmisRuntimeException("Object is null!");
- }
-
- // return object
- TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
- JSONObject jsonObject = JSONConverter.convert(object, typeCache, JSONConverter.PropertyMode.OBJECT, succinct);
+ public static class GetObject extends AbstractBrowserServiceCall {
+ public void serve(CallContext context, CmisService service, String repositoryId, HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+ // get parameters
+ String objectId = ((BrowserCallContextImpl) context).getObjectId();
+ ReturnVersion returnVersion = getEnumParameter(request, PARAM_RETURN_VERSION, ReturnVersion.class);
+ String filter = getStringParameter(request, PARAM_FILTER);
+ Boolean includeAllowableActions = getBooleanParameter(request, PARAM_ALLOWABLE_ACTIONS);
+ IncludeRelationships includeRelationships = getEnumParameter(request, PARAM_RELATIONSHIPS,
+ IncludeRelationships.class);
+ String renditionFilter = getStringParameter(request, PARAM_RENDITION_FILTER);
+ Boolean includePolicyIds = getBooleanParameter(request, PARAM_POLICY_IDS);
+ Boolean includeAcl = getBooleanParameter(request, PARAM_ACL);
+ boolean succinct = getBooleanParameter(request, Constants.PARAM_SUCCINCT, false);
+
+ // execute
+ ObjectData object;
+
+ if (returnVersion == ReturnVersion.LATEST || returnVersion == ReturnVersion.LASTESTMAJOR) {
+ object = service.getObjectOfLatestVersion(repositoryId, objectId, null,
+ returnVersion == ReturnVersion.LASTESTMAJOR, filter, includeAllowableActions,
+ includeRelationships, renditionFilter, includePolicyIds, includeAcl, null);
+ } else {
+ object = service.getObject(repositoryId, objectId, filter, includeAllowableActions,
+ includeRelationships, renditionFilter, includePolicyIds, includeAcl, null);
+ }
+
+ if (object == null) {
+ throw new CmisRuntimeException("Object is null!");
+ }
- response.setStatus(HttpServletResponse.SC_OK);
- writeJSON(jsonObject, request, response);
+ // return object
+ TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
+ JSONObject jsonObject = JSONConverter.convert(object, typeCache, JSONConverter.PropertyMode.OBJECT,
+ succinct);
+
+ response.setStatus(HttpServletResponse.SC_OK);
+ writeJSON(jsonObject, request, response);
+ }
}
/**
* getAllowableActions.
*/
- public static void getAllowableActions(CallContext context, CmisService service, String repositoryId,
- HttpServletRequest request, HttpServletResponse response) throws Exception {
- // get parameters
- String objectId = (String) context.get(CONTEXT_OBJECT_ID);
+ public static class GetAllowableActions extends AbstractBrowserServiceCall {
+ public void serve(CallContext context, CmisService service, String repositoryId, HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+ // get parameters
+ String objectId = ((BrowserCallContextImpl) context).getObjectId();
- AllowableActions allowableActions = service.getAllowableActions(repositoryId, objectId, null);
+ AllowableActions allowableActions = service.getAllowableActions(repositoryId, objectId, null);
- JSONObject jsonAllowableActions = JSONConverter.convert(allowableActions);
+ JSONObject jsonAllowableActions = JSONConverter.convert(allowableActions);
- response.setStatus(HttpServletResponse.SC_OK);
- writeJSON(jsonAllowableActions, request, response);
+ response.setStatus(HttpServletResponse.SC_OK);
+ writeJSON(jsonAllowableActions, request, response);
+ }
}
/**
* getRenditions.
*/
- public static void getRenditions(CallContext context, CmisService service, String repositoryId,
- HttpServletRequest request, HttpServletResponse response) throws Exception {
- // get parameters
- String objectId = (String) context.get(CONTEXT_OBJECT_ID);
- String renditionFilter = getStringParameter(request, PARAM_RENDITION_FILTER);
- BigInteger maxItems = getBigIntegerParameter(request, Constants.PARAM_MAX_ITEMS);
- BigInteger skipCount = getBigIntegerParameter(request, Constants.PARAM_SKIP_COUNT);
-
- // execute
- List<RenditionData> renditions = service.getRenditions(repositoryId, objectId, renditionFilter, maxItems,
- skipCount, null);
-
- JSONArray jsonRenditions = new JSONArray();
- if (renditions != null) {
- for (RenditionData rendition : renditions) {
- jsonRenditions.add(JSONConverter.convert(rendition));
+ public static class GetRenditions extends AbstractBrowserServiceCall {
+ public void serve(CallContext context, CmisService service, String repositoryId, HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+ // get parameters
+ String objectId = ((BrowserCallContextImpl) context).getObjectId();
+ String renditionFilter = getStringParameter(request, PARAM_RENDITION_FILTER);
+ BigInteger maxItems = getBigIntegerParameter(request, Constants.PARAM_MAX_ITEMS);
+ BigInteger skipCount = getBigIntegerParameter(request, Constants.PARAM_SKIP_COUNT);
+
+ // execute
+ List<RenditionData> renditions = service.getRenditions(repositoryId, objectId, renditionFilter, maxItems,
+ skipCount, null);
+
+ JSONArray jsonRenditions = new JSONArray();
+ if (renditions != null) {
+ for (RenditionData rendition : renditions) {
+ jsonRenditions.add(JSONConverter.convert(rendition));
+ }
}
- }
- response.setStatus(HttpServletResponse.SC_OK);
- writeJSON(jsonRenditions, request, response);
+ response.setStatus(HttpServletResponse.SC_OK);
+ writeJSON(jsonRenditions, request, response);
+ }
}
/**
* getContentStream.
*/
- public static void getContentStream(CallContext context, CmisService service, String repositoryId,
- HttpServletRequest request, HttpServletResponse response) throws Exception {
- // get parameters
- String objectId = (String) context.get(CONTEXT_OBJECT_ID);
- String streamId = getStringParameter(request, PARAM_STREAM_ID);
- boolean download = "attachment".equalsIgnoreCase(getStringParameter(request, PARAM_DOWNLOAD));
+ public static class GetContentStream extends AbstractBrowserServiceCall {
+ public void serve(CallContext context, CmisService service, String repositoryId, HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+ // get parameters
+ String objectId = ((BrowserCallContextImpl) context).getObjectId();
+ String streamId = getStringParameter(request, PARAM_STREAM_ID);
+ boolean download = "attachment".equalsIgnoreCase(getStringParameter(request, PARAM_DOWNLOAD));
- BigInteger offset = context.getOffset();
- BigInteger length = context.getLength();
+ BigInteger offset = context.getOffset();
+ BigInteger length = context.getLength();
- // execute
- ContentStream content = service.getContentStream(repositoryId, objectId, streamId, offset, length, null);
+ // execute
+ ContentStream content = service.getContentStream(repositoryId, objectId, streamId, offset, length, null);
- if (content == null || content.getStream() == null) {
- throw new CmisRuntimeException("Content stream is null!");
- }
+ if (content == null || content.getStream() == null) {
+ throw new CmisRuntimeException("Content stream is null!");
+ }
- // set HTTP headers, if requested by the server implementation
- if (HttpUtils.setContentStreamHeaders(content, request, response)) {
- return;
- }
+ // set HTTP headers, if requested by the server implementation
+ if (sendContentStreamHeaders(content, request, response)) {
+ return;
+ }
- String contentType = content.getMimeType();
- if (contentType == null) {
- contentType = MEDIATYPE_OCTETSTREAM;
- }
+ String contentType = content.getMimeType();
+ if (contentType == null) {
+ contentType = MEDIATYPE_OCTETSTREAM;
+ }
- // set headers
- if (offset == null && length == null) {
- response.setStatus(HttpServletResponse.SC_OK);
- } else {
- setStatus(request, response, HttpServletResponse.SC_PARTIAL_CONTENT);
- }
- response.setContentType(contentType);
+ // set headers
+ if (offset == null && length == null) {
+ response.setStatus(HttpServletResponse.SC_OK);
+ } else {
+ setStatus(request, response, HttpServletResponse.SC_PARTIAL_CONTENT);
+ }
+ response.setContentType(contentType);
- String contentFilename = content.getFileName();
- if (contentFilename == null) {
- contentFilename = "content";
- }
+ String contentFilename = content.getFileName();
+ if (contentFilename == null) {
+ contentFilename = "content";
+ }
- if (download) {
- response.setHeader(MimeHelper.CONTENT_DISPOSITION,
- MimeHelper.encodeContentDisposition(MimeHelper.DISPOSITION_ATTACHMENT, contentFilename));
- } else {
- response.setHeader(MimeHelper.CONTENT_DISPOSITION,
- MimeHelper.encodeContentDisposition(MimeHelper.DISPOSITION_INLINE, contentFilename));
- }
+ if (download) {
+ response.setHeader(MimeHelper.CONTENT_DISPOSITION,
+ MimeHelper.encodeContentDisposition(MimeHelper.DISPOSITION_ATTACHMENT, contentFilename));
+ } else {
+ response.setHeader(MimeHelper.CONTENT_DISPOSITION,
+ MimeHelper.encodeContentDisposition(MimeHelper.DISPOSITION_INLINE, contentFilename));
+ }
- // send content
- InputStream in = new BufferedInputStream(content.getStream(), BUFFER_SIZE);
- OutputStream out = new BufferedOutputStream(response.getOutputStream());
+ // send content
+ InputStream in = new BufferedInputStream(content.getStream(), BUFFER_SIZE);
+ OutputStream out = new BufferedOutputStream(response.getOutputStream());
+
+ byte[] buffer = new byte[BUFFER_SIZE];
+ int b;
+ while ((b = in.read(buffer)) > -1) {
+ out.write(buffer, 0, b);
+ }
- byte[] buffer = new byte[BUFFER_SIZE];
- int b;
- while ((b = in.read(buffer)) > -1) {
- out.write(buffer, 0, b);
+ in.close();
+ out.flush();
}
-
- in.close();
- out.flush();
}
/**
* deleteObject.
*/
- public static void deleteObject(CallContext context, CmisService service, String repositoryId,
- HttpServletRequest request, HttpServletResponse response) throws Exception {
- // get parameters
- String objectId = (String) context.get(CONTEXT_OBJECT_ID);
- Boolean allVersions = getBooleanParameter(request, Constants.PARAM_ALL_VERSIONS);
+ public static class DeleteObject extends AbstractBrowserServiceCall {
+ public void serve(CallContext context, CmisService service, String repositoryId, HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+ // get parameters
+ String objectId = ((BrowserCallContextImpl) context).getObjectId();
+ Boolean allVersions = getBooleanParameter(request, Constants.PARAM_ALL_VERSIONS);
- service.deleteObject(repositoryId, objectId, allVersions, null);
+ service.deleteObject(repositoryId, objectId, allVersions, null);
- response.setStatus(HttpServletResponse.SC_OK);
- writeEmpty(request, response);
+ response.setStatus(HttpServletResponse.SC_OK);
+ writeEmpty(request, response);
+ }
}
/**
* deleteTree.
*/
- public static void deleteTree(CallContext context, CmisService service, String repositoryId,
- HttpServletRequest request, HttpServletResponse response) throws Exception {
- // get parameters
- String objectId = (String) context.get(CONTEXT_OBJECT_ID);
- Boolean allVersions = getBooleanParameter(request, Constants.PARAM_ALL_VERSIONS);
- UnfileObject unfileObjects = getEnumParameter(request, Constants.PARAM_UNFILE_OBJECTS, UnfileObject.class);
- Boolean continueOnFailure = getBooleanParameter(request, Constants.PARAM_CONTINUE_ON_FAILURE);
+ public static class DeleteTree extends AbstractBrowserServiceCall {
+ public void serve(CallContext context, CmisService service, String repositoryId, HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+ // get parameters
+ String objectId = ((BrowserCallContextImpl) context).getObjectId();
+ Boolean allVersions = getBooleanParameter(request, Constants.PARAM_ALL_VERSIONS);
+ UnfileObject unfileObjects = getEnumParameter(request, Constants.PARAM_UNFILE_OBJECTS, UnfileObject.class);
+ Boolean continueOnFailure = getBooleanParameter(request, Constants.PARAM_CONTINUE_ON_FAILURE);
+
+ // execute
+ FailedToDeleteData ftd = service.deleteTree(repositoryId, objectId, allVersions, unfileObjects,
+ continueOnFailure, null);
- // execute
- FailedToDeleteData ftd = service.deleteTree(repositoryId, objectId, allVersions, unfileObjects,
- continueOnFailure, null);
+ response.setStatus(HttpServletResponse.SC_OK);
- response.setStatus(HttpServletResponse.SC_OK);
+ if ((ftd != null) && (ftd.getIds() != null) && (ftd.getIds().size() > 0)) {
+ JSONObject jsonObject = JSONConverter.convert(ftd);
+ writeJSON(jsonObject, request, response);
+ return;
+ }
- if ((ftd != null) && (ftd.getIds() != null) && (ftd.getIds().size() > 0)) {
- JSONObject jsonObject = JSONConverter.convert(ftd);
- writeJSON(jsonObject, request, response);
- return;
+ writeEmpty(request, response);
}
-
- writeEmpty(request, response);
}
/**
* Delete content stream.
*/
- public static void deleteContentStream(CallContext context, CmisService service, String repositoryId,
- HttpServletRequest request, HttpServletResponse response) throws Exception {
- // get parameters
- String objectId = (String) context.get(CONTEXT_OBJECT_ID);
- String changeToken = getStringParameter(request, Constants.PARAM_CHANGE_TOKEN);
- boolean succinct = getBooleanParameter(request, Constants.CONTROL_SUCCINCT, false);
+ public static class DeleteContentStream extends AbstractBrowserServiceCall {
+ public void serve(CallContext context, CmisService service, String repositoryId, HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+ // get parameters
+ String objectId = ((BrowserCallContextImpl) context).getObjectId();
+ String changeToken = getStringParameter(request, Constants.PARAM_CHANGE_TOKEN);
+ boolean succinct = getBooleanParameter(request, Constants.CONTROL_SUCCINCT, false);
+
+ // execute
+ Holder<String> objectIdHolder = new Holder<String>(objectId);
+ Holder<String> changeTokenHolder = (changeToken == null ? null : new Holder<String>(changeToken));
+ service.deleteContentStream(repositoryId, objectIdHolder, changeTokenHolder, null);
+
+ String newObjectId = (objectIdHolder.getValue() == null ? objectId : objectIdHolder.getValue());
+
+ ObjectData object = getSimpleObject(service, repositoryId, newObjectId);
+ if (object == null) {
+ throw new CmisRuntimeException("Object is null!");
+ }
- // execute
- Holder<String> objectIdHolder = new Holder<String>(objectId);
- Holder<String> changeTokenHolder = (changeToken == null ? null : new Holder<String>(changeToken));
- service.deleteContentStream(repositoryId, objectIdHolder, changeTokenHolder, null);
+ response.setStatus(HttpServletResponse.SC_OK);
- String newObjectId = (objectIdHolder.getValue() == null ? objectId : objectIdHolder.getValue());
+ // return object
+ TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
+ JSONObject jsonObject = JSONConverter.convert(object, typeCache, JSONConverter.PropertyMode.OBJECT,
+ succinct);
- ObjectData object = getSimpleObject(service, repositoryId, newObjectId);
- if (object == null) {
- throw new CmisRuntimeException("Object is null!");
+ writeJSON(jsonObject, request, response);
}
-
- response.setStatus(HttpServletResponse.SC_OK);
-
- // return object
- TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
- JSONObject jsonObject = JSONConverter.convert(object, typeCache, JSONConverter.PropertyMode.OBJECT, succinct);
-
- writeJSON(jsonObject, request, response);
}
/**
* setContentStream.
*/
- public static void setContentStream(CallContext context, CmisService service, String repositoryId,
- HttpServletRequest request, HttpServletResponse response) throws Exception {
- // get parameters
- String objectId = (String) context.get(CONTEXT_OBJECT_ID);
- String changeToken = getStringParameter(request, Constants.PARAM_CHANGE_TOKEN);
- Boolean overwriteFlag = getBooleanParameter(request, Constants.PARAM_OVERWRITE_FLAG);
- boolean succinct = getBooleanParameter(request, Constants.CONTROL_SUCCINCT, false);
+ public static class SetContentStream extends AbstractBrowserServiceCall {
+ public void serve(CallContext context, CmisService service, String repositoryId, HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+ // get parameters
+ String objectId = ((BrowserCallContextImpl) context).getObjectId();
+ String changeToken = getStringParameter(request, Constants.PARAM_CHANGE_TOKEN);
+ Boolean overwriteFlag = getBooleanParameter(request, Constants.PARAM_OVERWRITE_FLAG);
+ boolean succinct = getBooleanParameter(request, Constants.CONTROL_SUCCINCT, false);
+
+ // execute
+ Holder<String> objectIdHolder = new Holder<String>(objectId);
+ Holder<String> changeTokenHolder = (changeToken == null ? null : new Holder<String>(changeToken));
+ ContentStream contentStream = createContentStream(request);
+
+ try {
+ service.setContentStream(repositoryId, objectIdHolder, overwriteFlag, changeTokenHolder, contentStream,
+ null);
+ } finally {
+ closeContentStream(contentStream);
+ }
- // execute
- Holder<String> objectIdHolder = new Holder<String>(objectId);
- Holder<String> changeTokenHolder = (changeToken == null ? null : new Holder<String>(changeToken));
- ContentStream contentStream = createContentStream(request);
+ String newObjectId = (objectIdHolder.getValue() == null ? objectId : objectIdHolder.getValue());
- try {
- service.setContentStream(repositoryId, objectIdHolder, overwriteFlag, changeTokenHolder, contentStream,
- null);
- } finally {
- closeContentStream(contentStream);
- }
+ ObjectData object = getSimpleObject(service, repositoryId, newObjectId);
+ if (object == null) {
+ throw new CmisRuntimeException("Object is null!");
+ }
- String newObjectId = (objectIdHolder.getValue() == null ? objectId : objectIdHolder.getValue());
+ // set headers
+ setStatus(request, response, HttpServletResponse.SC_CREATED);
+ response.setHeader("Location", compileObjectLocationUrl(request, repositoryId, newObjectId));
+
+ // return object
+ TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
+ JSONObject jsonObject = JSONConverter.convert(object, typeCache, JSONConverter.PropertyMode.OBJECT,
+ succinct);
- ObjectData object = getSimpleObject(service, repositoryId, newObjectId);
- if (object == null) {
- throw new CmisRuntimeException("Object is null!");
+ writeJSON(jsonObject, request, response);
}
-
- // set headers
- String location = compileUrl(compileBaseUrl(request, repositoryId), RESOURCE_CONTENT, newObjectId);
-
- setStatus(request, response, HttpServletResponse.SC_CREATED);
- response.setHeader("Location", location);
-
- // return object
- TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
- JSONObject jsonObject = JSONConverter.convert(object, typeCache, JSONConverter.PropertyMode.OBJECT, succinct);
-
- writeJSON(jsonObject, request, response);
}
/**
* appendContentStream.
*/
- public static void appendContentStream(CallContext context, CmisService service, String repositoryId,
- HttpServletRequest request, HttpServletResponse response) throws Exception {
- // get parameters
- String objectId = (String) context.get(CONTEXT_OBJECT_ID);
- boolean isLastChunk = getBooleanParameter(request, Constants.CONTROL_IS_LAST_CHUNK, false);
- String changeToken = getStringParameter(request, Constants.PARAM_CHANGE_TOKEN);
- boolean succinct = getBooleanParameter(request, Constants.CONTROL_SUCCINCT, false);
+ public static class AppendContentStream extends AbstractBrowserServiceCall {
+ public void serve(CallContext context, CmisService service, String repositoryId, HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+ // get parameters
+ String objectId = ((BrowserCallContextImpl) context).getObjectId();
+ boolean isLastChunk = getBooleanParameter(request, Constants.CONTROL_IS_LAST_CHUNK, false);
+ String changeToken = getStringParameter(request, Constants.PARAM_CHANGE_TOKEN);
+ boolean succinct = getBooleanParameter(request, Constants.CONTROL_SUCCINCT, false);
+
+ // execute
+ Holder<String> objectIdHolder = new Holder<String>(objectId);
+ Holder<String> changeTokenHolder = (changeToken == null ? null : new Holder<String>(changeToken));
+ ContentStream contentStream = createContentStream(request);
+
+ try {
+ service.appendContentStream(repositoryId, objectIdHolder, changeTokenHolder, contentStream,
+ isLastChunk, null);
+ } finally {
+ closeContentStream(contentStream);
+ }
- // execute
- Holder<String> objectIdHolder = new Holder<String>(objectId);
- Holder<String> changeTokenHolder = (changeToken == null ? null : new Holder<String>(changeToken));
- ContentStream contentStream = createContentStream(request);
+ String newObjectId = (objectIdHolder.getValue() == null ? objectId : objectIdHolder.getValue());
- try {
- service.appendContentStream(repositoryId, objectIdHolder, changeTokenHolder, contentStream, isLastChunk,
- null);
- } finally {
- closeContentStream(contentStream);
- }
+ ObjectData object = getSimpleObject(service, repositoryId, newObjectId);
+ if (object == null) {
+ throw new CmisRuntimeException("Object is null!");
+ }
- String newObjectId = (objectIdHolder.getValue() == null ? objectId : objectIdHolder.getValue());
+ // set headers
+ setStatus(request, response, HttpServletResponse.SC_CREATED);
+ response.setHeader("Location", compileObjectLocationUrl(request, repositoryId, newObjectId));
+
+ // return object
+ TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
+ JSONObject jsonObject = JSONConverter.convert(object, typeCache, JSONConverter.PropertyMode.OBJECT,
+ succinct);
- ObjectData object = getSimpleObject(service, repositoryId, newObjectId);
- if (object == null) {
- throw new CmisRuntimeException("Object is null!");
+ writeJSON(jsonObject, request, response);
}
-
- // set headers
- String location = compileUrl(compileBaseUrl(request, repositoryId), RESOURCE_CONTENT, newObjectId);
-
- setStatus(request, response, HttpServletResponse.SC_CREATED);
- response.setHeader("Location", location);
-
- // return object
- TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
- JSONObject jsonObject = JSONConverter.convert(object, typeCache, JSONConverter.PropertyMode.OBJECT, succinct);
-
- writeJSON(jsonObject, request, response);
}
/**
* moveObject.
*/
- public static void moveObject(CallContext context, CmisService service, String repositoryId,
- HttpServletRequest request, HttpServletResponse response) throws Exception {
- // get parameters
- String objectId = (String) context.get(CONTEXT_OBJECT_ID);
- String targetFolderId = getStringParameter(request, PARAM_TARGET_FOLDER_ID);
- String sourceFolderId = getStringParameter(request, PARAM_SOURCE_FOLDER_ID);
- boolean succinct = getBooleanParameter(request, Constants.CONTROL_SUCCINCT, false);
-
- // execute
- Holder<String> objectIdHolder = new Holder<String>(objectId);
- service.moveObject(repositoryId, objectIdHolder, targetFolderId, sourceFolderId, null);
+ public static class MoveObject extends AbstractBrowserServiceCall {
+ public void serve(CallContext context, CmisService service, String repositoryId, HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+ // get parameters
+ String objectId = ((BrowserCallContextImpl) context).getObjectId();
+ String targetFolderId = getStringParameter(request, PARAM_TARGET_FOLDER_ID);
+ String sourceFolderId = getStringParameter(request, PARAM_SOURCE_FOLDER_ID);
+ boolean succinct = getBooleanParameter(request, Constants.CONTROL_SUCCINCT, false);
+
+ // execute
+ Holder<String> objectIdHolder = new Holder<String>(objectId);
+ service.moveObject(repositoryId, objectIdHolder, targetFolderId, sourceFolderId, null);
+
+ String newObjectId = (objectIdHolder.getValue() == null ? objectId : objectIdHolder.getValue());
+
+ ObjectData object = getSimpleObject(service, repositoryId, newObjectId);
+ if (object == null) {
+ throw new CmisRuntimeException("Object is null!");
+ }
- String newObjectId = (objectIdHolder.getValue() == null ? objectId : objectIdHolder.getValue());
+ // set headers
+ setStatus(request, response, HttpServletResponse.SC_CREATED);
+ response.setHeader("Location", compileObjectLocationUrl(request, repositoryId, newObjectId));
+
+ // return object
+ TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
+ JSONObject jsonObject = JSONConverter.convert(object, typeCache, JSONConverter.PropertyMode.OBJECT,
+ succinct);
- ObjectData object = getSimpleObject(service, repositoryId, newObjectId);
- if (object == null) {
- throw new CmisRuntimeException("Object is null!");
+ writeJSON(jsonObject, request, response);
}
-
- // set headers
- String location = compileUrl(compileBaseUrl(request, repositoryId), RESOURCE_CONTENT, newObjectId);
-
- setStatus(request, response, HttpServletResponse.SC_CREATED);
- response.setHeader("Location", location);
-
- // return object
- TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
- JSONObject jsonObject = JSONConverter.convert(object, typeCache, JSONConverter.PropertyMode.OBJECT, succinct);
-
- writeJSON(jsonObject, request, response);
}
}
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/PolicyService.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/PolicyService.java?rev=1481420&r1=1481419&r2=1481420&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/PolicyService.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/PolicyService.java Sat May 11 21:19:48 2013
@@ -20,11 +20,6 @@ package org.apache.chemistry.opencmis.se
import static org.apache.chemistry.opencmis.commons.impl.Constants.PARAM_FILTER;
import static org.apache.chemistry.opencmis.commons.impl.Constants.PARAM_POLICY_ID;
-import static org.apache.chemistry.opencmis.server.impl.browser.BrowserBindingUtils.CONTEXT_OBJECT_ID;
-import static org.apache.chemistry.opencmis.server.impl.browser.BrowserBindingUtils.getSimpleObject;
-import static org.apache.chemistry.opencmis.server.impl.browser.BrowserBindingUtils.writeJSON;
-import static org.apache.chemistry.opencmis.server.shared.HttpUtils.getBooleanParameter;
-import static org.apache.chemistry.opencmis.server.shared.HttpUtils.getStringParameter;
import java.util.List;
@@ -49,79 +44,88 @@ public class PolicyService {
/**
* getAppliedPolicies.
*/
- public static void getAppliedPolicies(CallContext context, CmisService service, String repositoryId,
- HttpServletRequest request, HttpServletResponse response) throws Exception {
- // get parameters
- String objectId = (String) context.get(CONTEXT_OBJECT_ID);
- String filter = getStringParameter(request, PARAM_FILTER);
- boolean succinct = getBooleanParameter(request, Constants.PARAM_SUCCINCT, false);
-
- // execute
- List<ObjectData> policies = service.getAppliedPolicies(repositoryId, objectId, filter, null);
-
- JSONArray jsonPolicies = new JSONArray();
- if (policies != null) {
- TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
- for (ObjectData policy : policies) {
- jsonPolicies.add(JSONConverter.convert(policy, typeCache, JSONConverter.PropertyMode.OBJECT, succinct));
+ public static class GetAppliedPolicies extends AbstractBrowserServiceCall {
+ public void serve(CallContext context, CmisService service, String repositoryId, HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+ // get parameters
+ String objectId = ((BrowserCallContextImpl) context).getObjectId();
+ String filter = getStringParameter(request, PARAM_FILTER);
+ boolean succinct = getBooleanParameter(request, Constants.PARAM_SUCCINCT, false);
+
+ // execute
+ List<ObjectData> policies = service.getAppliedPolicies(repositoryId, objectId, filter, null);
+
+ JSONArray jsonPolicies = new JSONArray();
+ if (policies != null) {
+ TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
+ for (ObjectData policy : policies) {
+ jsonPolicies.add(JSONConverter.convert(policy, typeCache, JSONConverter.PropertyMode.OBJECT,
+ succinct));
+ }
}
- }
- response.setStatus(HttpServletResponse.SC_OK);
- writeJSON(jsonPolicies, request, response);
+ response.setStatus(HttpServletResponse.SC_OK);
+ writeJSON(jsonPolicies, request, response);
+ }
}
/**
* applyPolicy.
*/
- public static void applyPolicy(CallContext context, CmisService service, String repositoryId,
- HttpServletRequest request, HttpServletResponse response) throws Exception {
- // get parameters
- String objectId = (String) context.get(CONTEXT_OBJECT_ID);
- String policyId = getStringParameter(request, PARAM_POLICY_ID);
- boolean succinct = getBooleanParameter(request, Constants.CONTROL_SUCCINCT, false);
-
- // execute
- service.applyPolicy(repositoryId, policyId, objectId, null);
-
- ObjectData object = getSimpleObject(service, repositoryId, objectId);
- if (object == null) {
- throw new CmisRuntimeException("Object is null!");
- }
+ public static class ApplyPolicy extends AbstractBrowserServiceCall {
+ public void serve(CallContext context, CmisService service, String repositoryId, HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+ // get parameters
+ String objectId = ((BrowserCallContextImpl) context).getObjectId();
+ String policyId = getStringParameter(request, PARAM_POLICY_ID);
+ boolean succinct = getBooleanParameter(request, Constants.CONTROL_SUCCINCT, false);
+
+ // execute
+ service.applyPolicy(repositoryId, policyId, objectId, null);
+
+ ObjectData object = getSimpleObject(service, repositoryId, objectId);
+ if (object == null) {
+ throw new CmisRuntimeException("Object is null!");
+ }
- // return object
- response.setStatus(HttpServletResponse.SC_OK);
+ // return object
+ response.setStatus(HttpServletResponse.SC_OK);
- TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
- JSONObject jsonObject = JSONConverter.convert(object, typeCache, JSONConverter.PropertyMode.OBJECT, succinct);
+ TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
+ JSONObject jsonObject = JSONConverter.convert(object, typeCache, JSONConverter.PropertyMode.OBJECT,
+ succinct);
- writeJSON(jsonObject, request, response);
+ writeJSON(jsonObject, request, response);
+ }
}
/**
* removePolicy.
*/
- public static void removePolicy(CallContext context, CmisService service, String repositoryId,
- HttpServletRequest request, HttpServletResponse response) throws Exception {
- // get parameters
- String objectId = (String) context.get(CONTEXT_OBJECT_ID);
- String policyId = getStringParameter(request, PARAM_POLICY_ID);
- boolean succinct = getBooleanParameter(request, Constants.CONTROL_SUCCINCT, false);
-
- // execute
- service.removePolicy(repositoryId, policyId, objectId, null);
-
- ObjectData object = getSimpleObject(service, repositoryId, objectId);
- if (object == null) {
- throw new CmisRuntimeException("Object is null!");
- }
+ public static class RemovePolicy extends AbstractBrowserServiceCall {
+ public void serve(CallContext context, CmisService service, String repositoryId, HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+ // get parameters
+ String objectId = ((BrowserCallContextImpl) context).getObjectId();
+ String policyId = getStringParameter(request, PARAM_POLICY_ID);
+ boolean succinct = getBooleanParameter(request, Constants.CONTROL_SUCCINCT, false);
+
+ // execute
+ service.removePolicy(repositoryId, policyId, objectId, null);
+
+ ObjectData object = getSimpleObject(service, repositoryId, objectId);
+ if (object == null) {
+ throw new CmisRuntimeException("Object is null!");
+ }
- // return object
- response.setStatus(HttpServletResponse.SC_OK);
+ // return object
+ response.setStatus(HttpServletResponse.SC_OK);
- TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
- JSONObject jsonObject = JSONConverter.convert(object, typeCache, JSONConverter.PropertyMode.OBJECT, succinct);
+ TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
+ JSONObject jsonObject = JSONConverter.convert(object, typeCache, JSONConverter.PropertyMode.OBJECT,
+ succinct);
- writeJSON(jsonObject, request, response);
+ writeJSON(jsonObject, request, response);
+ }
}
}
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/RelationshipService.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/RelationshipService.java?rev=1481420&r1=1481419&r2=1481420&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/RelationshipService.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/RelationshipService.java Sat May 11 21:19:48 2013
@@ -25,11 +25,6 @@ import static org.apache.chemistry.openc
import static org.apache.chemistry.opencmis.commons.impl.Constants.PARAM_SKIP_COUNT;
import static org.apache.chemistry.opencmis.commons.impl.Constants.PARAM_SUB_RELATIONSHIP_TYPES;
import static org.apache.chemistry.opencmis.commons.impl.Constants.PARAM_TYPE_ID;
-import static org.apache.chemistry.opencmis.server.impl.browser.BrowserBindingUtils.CONTEXT_OBJECT_ID;
-import static org.apache.chemistry.opencmis.server.shared.HttpUtils.getBigIntegerParameter;
-import static org.apache.chemistry.opencmis.server.shared.HttpUtils.getBooleanParameter;
-import static org.apache.chemistry.opencmis.server.shared.HttpUtils.getEnumParameter;
-import static org.apache.chemistry.opencmis.server.shared.HttpUtils.getStringParameter;
import java.math.BigInteger;
@@ -51,32 +46,36 @@ public class RelationshipService {
/**
* getObjectRelationships.
*/
- public static void getObjectRelationships(CallContext context, CmisService service, String repositoryId,
- HttpServletRequest request, HttpServletResponse response) throws Exception {
- // get parameters
- String objectId = (String) context.get(CONTEXT_OBJECT_ID);
- Boolean includeSubRelationshipTypes = getBooleanParameter(request, PARAM_SUB_RELATIONSHIP_TYPES);
- RelationshipDirection relationshipDirection = getEnumParameter(request, PARAM_RELATIONSHIP_DIRECTION,
- RelationshipDirection.class);
- String typeId = getStringParameter(request, PARAM_TYPE_ID);
- String renditionFilter = getStringParameter(request, PARAM_RENDITION_FILTER);
- Boolean includeAllowableActions = getBooleanParameter(request, PARAM_ALLOWABLE_ACTIONS);
- BigInteger maxItems = getBigIntegerParameter(request, PARAM_MAX_ITEMS);
- BigInteger skipCount = getBigIntegerParameter(request, PARAM_SKIP_COUNT);
- boolean succinct = getBooleanParameter(request, Constants.PARAM_SUCCINCT, false);
-
- // execute
- ObjectList relationships = service.getObjectRelationships(repositoryId, objectId, includeSubRelationshipTypes,
- relationshipDirection, typeId, renditionFilter, includeAllowableActions, maxItems, skipCount, null);
+ public static class GetObjectRelationships extends AbstractBrowserServiceCall {
+ public void serve(CallContext context, CmisService service, String repositoryId, HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+ // get parameters
+ String objectId = ((BrowserCallContextImpl) context).getObjectId();
+ Boolean includeSubRelationshipTypes = getBooleanParameter(request, PARAM_SUB_RELATIONSHIP_TYPES);
+ RelationshipDirection relationshipDirection = getEnumParameter(request, PARAM_RELATIONSHIP_DIRECTION,
+ RelationshipDirection.class);
+ String typeId = getStringParameter(request, PARAM_TYPE_ID);
+ String renditionFilter = getStringParameter(request, PARAM_RENDITION_FILTER);
+ Boolean includeAllowableActions = getBooleanParameter(request, PARAM_ALLOWABLE_ACTIONS);
+ BigInteger maxItems = getBigIntegerParameter(request, PARAM_MAX_ITEMS);
+ BigInteger skipCount = getBigIntegerParameter(request, PARAM_SKIP_COUNT);
+ boolean succinct = getBooleanParameter(request, Constants.PARAM_SUCCINCT, false);
+
+ // execute
+ ObjectList relationships = service.getObjectRelationships(repositoryId, objectId,
+ includeSubRelationshipTypes, relationshipDirection, typeId, renditionFilter,
+ includeAllowableActions, maxItems, skipCount, null);
+
+ if (relationships == null) {
+ throw new CmisRuntimeException("Relationships are null!");
+ }
+
+ TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
+ JSONObject jsonChildren = JSONConverter.convert(relationships, typeCache,
+ JSONConverter.PropertyMode.OBJECT, succinct);
- if (relationships == null) {
- throw new CmisRuntimeException("Relationships are null!");
+ response.setStatus(HttpServletResponse.SC_OK);
+ writeJSON(jsonChildren, request, response);
}
-
- TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
- JSONObject jsonChildren = JSONConverter.convert(relationships, typeCache, JSONConverter.PropertyMode.OBJECT, succinct);
-
- response.setStatus(HttpServletResponse.SC_OK);
- BrowserBindingUtils.writeJSON(jsonChildren, request, response);
}
}