diff --git a/source/java/org/alfresco/rest/framework/resource/parameters/Params.java b/source/java/org/alfresco/rest/framework/resource/parameters/Params.java index 1415b874bc..4b8e274f10 100644 --- a/source/java/org/alfresco/rest/framework/resource/parameters/Params.java +++ b/source/java/org/alfresco/rest/framework/resource/parameters/Params.java @@ -33,7 +33,7 @@ public class Params implements Parameters private final Status status; //Constants - private static final RecognizedParams NULL_PARAMS = new RecognizedParams(null, null, null, null, null, null, null); + private static final RecognizedParams NULL_PARAMS = new RecognizedParams(null, null, null, null, null, null, null, false); private static final BasicContentInfo DEFAULT_CONTENT_INFO = new ContentInfoImpl(MimetypeMap.MIMETYPE_BINARY, "UTF-8", -1, null); protected Params(String entityId, String relationshipId, Object passedIn, InputStream stream, String addressedProperty, RecognizedParams recognizedParams, BasicContentInfo contentInfo) @@ -51,7 +51,7 @@ public class Params implements Parameters public static Params valueOf(BeanPropertiesFilter paramFilter, String entityId) { - return new Params(entityId, null, null, null, null, new RecognizedParams(null, null, paramFilter, null, null, null, null), null); + return new Params(entityId, null, null, null, null, new RecognizedParams(null, null, paramFilter, null, null, null, null, false), null); } public static Params valueOf(String entityId, String relationshipId) @@ -104,6 +104,11 @@ public class Params implements Parameters return this.recognizedParams.filter; } + public boolean includeSource() + { + return this.recognizedParams.includeSource; + } + public Map getRelationsFilter() { return this.recognizedParams.relationshipFilter; @@ -139,6 +144,8 @@ public class Params implements Parameters builder.append(this.recognizedParams.filter); builder.append(", relationshipFilter="); builder.append(this.recognizedParams.relationshipFilter); + builder.append(", includeSource="); + builder.append(this.recognizedParams.includeSource); builder.append(", addressedProperty="); builder.append(this.addressedProperty); builder.append("]"); @@ -222,10 +229,11 @@ public class Params implements Parameters private final Query query; private final List select; private final List sorting; + private final boolean includeSource; @SuppressWarnings("unchecked") public RecognizedParams(Map requestParameters, Paging paging, BeanPropertiesFilter filter, Map relationshipFilter, List select, - Query query, List sorting) + Query query, List sorting, boolean includeSource) { super(); this.requestParameters = requestParameters; @@ -235,6 +243,7 @@ public class Params implements Parameters this.relationshipFilter = (Map) (relationshipFilter==null?Collections.emptyMap():relationshipFilter); this.select = (List) (select==null?Collections.emptyList():select); this.sorting = (List) (sorting==null?Collections.emptyList():sorting); + this.includeSource = includeSource; } } diff --git a/source/java/org/alfresco/rest/framework/webscripts/ResourceWebScriptHelper.java b/source/java/org/alfresco/rest/framework/webscripts/ResourceWebScriptHelper.java index 0febbbdfb8..b9466385c8 100644 --- a/source/java/org/alfresco/rest/framework/webscripts/ResourceWebScriptHelper.java +++ b/source/java/org/alfresco/rest/framework/webscripts/ResourceWebScriptHelper.java @@ -90,7 +90,8 @@ public class ResourceWebScriptHelper public static final String PARAM_ORDERBY = "orderBy"; public static final String PARAM_WHERE = "where"; public static final String PARAM_SELECT = "select"; - public static final List KNOWN_PARAMS = Arrays.asList(PARAM_RELATIONS,PARAM_FILTER_PROPS,PARAM_PAGING_SKIP,PARAM_PAGING_MAX, PARAM_ORDERBY, PARAM_WHERE, PARAM_SELECT); + public static final String PARAM_INCLUDE_SOURCE_ENTITY = "includeSource"; + public static final List KNOWN_PARAMS = Arrays.asList(PARAM_RELATIONS,PARAM_FILTER_PROPS,PARAM_PAGING_SKIP,PARAM_PAGING_MAX, PARAM_ORDERBY, PARAM_WHERE, PARAM_SELECT, PARAM_INCLUDE_SOURCE_ENTITY); private ResourceLocator locator; @@ -687,13 +688,14 @@ public class ResourceWebScriptHelper Map relationFilter = getRelationFilter(req.getParameter(ResourceWebScriptHelper.PARAM_RELATIONS)); Query whereQuery = getWhereClause(req.getParameter(ResourceWebScriptHelper.PARAM_WHERE)); Map requestParams = getRequestParameters(req); + boolean includeSource = Boolean.valueOf(req.getParameter(ResourceWebScriptHelper.PARAM_INCLUDE_SOURCE_ENTITY)); List theSelect = getSelectClause(req.getParameter(ResourceWebScriptHelper.PARAM_SELECT)); BeanPropertiesFilter filter = getFilter(req.getParameter(ResourceWebScriptHelper.PARAM_FILTER_PROPS), theSelect); - return new RecognizedParams(requestParams, paging, filter, relationFilter, theSelect, whereQuery, sorting); + return new RecognizedParams(requestParams, paging, filter, relationFilter, theSelect, whereQuery, sorting, includeSource); } - + /** * Find paging setings based on the request parameters. * diff --git a/source/test-java/org/alfresco/rest/framework/tests/core/ParamsExtender.java b/source/test-java/org/alfresco/rest/framework/tests/core/ParamsExtender.java index 206d0ef650..4b5ab51163 100755 --- a/source/test-java/org/alfresco/rest/framework/tests/core/ParamsExtender.java +++ b/source/test-java/org/alfresco/rest/framework/tests/core/ParamsExtender.java @@ -22,17 +22,17 @@ public class ParamsExtender extends Params public static Params valueOf(Map rFilter, String entityId) { - return new ParamsExtender(entityId, null, null, null, null, new Params.RecognizedParams(null, null, null, rFilter, null, null, null)); + return new ParamsExtender(entityId, null, null, null, null, new Params.RecognizedParams(null, null, null, rFilter, null, null, null, false)); } public static Params valueOf(Paging paging, String entityId) { - return new ParamsExtender(entityId, null, null, null, null, new Params.RecognizedParams(null, paging, null, null, null, null, null)); + return new ParamsExtender(entityId, null, null, null, null, new Params.RecognizedParams(null, paging, null, null, null, null, null, false)); } public static Params valueOf(Map params) { - return new ParamsExtender(null, null, null, null, null, new Params.RecognizedParams(params, null, null, null, null, null, null)); + return new ParamsExtender(null, null, null, null, null, new Params.RecognizedParams(params, null, null, null, null, null, null, false)); } } diff --git a/source/test-java/org/alfresco/rest/framework/tests/core/ParamsExtractorTests.java b/source/test-java/org/alfresco/rest/framework/tests/core/ParamsExtractorTests.java index 050882661a..02ac3d2ccc 100644 --- a/source/test-java/org/alfresco/rest/framework/tests/core/ParamsExtractorTests.java +++ b/source/test-java/org/alfresco/rest/framework/tests/core/ParamsExtractorTests.java @@ -85,12 +85,14 @@ public class ParamsExtractorTests params = extractor.extractParams(mockEntity(), request); assertNotNull(params); assertNotNull(params.getRelationsFilter()); + assertFalse(params.includeSource()); templateVars.put(ResourceLocator.RELATIONSHIP_ID, "45678"); params = extractor.extractParams(mockRelationship(), request); assertNotNull(params); assertEquals("1234", params.getEntityId()); assertEquals("45678", params.getRelationshipId()); + assertFalse(params.includeSource()); testExtractAddressedParams(templateVars, request, extractor); } diff --git a/source/test-java/org/alfresco/rest/test/workflow/api/impl/ProcessesImplTest.java b/source/test-java/org/alfresco/rest/test/workflow/api/impl/ProcessesImplTest.java index cef4044d9b..b62320c068 100644 --- a/source/test-java/org/alfresco/rest/test/workflow/api/impl/ProcessesImplTest.java +++ b/source/test-java/org/alfresco/rest/test/workflow/api/impl/ProcessesImplTest.java @@ -216,7 +216,7 @@ public class ProcessesImplTest extends TestCase private CollectionWithPagingInfo queryActiveProcessesAndAssertResult(int skipCount, int maxItems) { Query query = ResourceWebScriptHelper.getWhereClause(QUERY_STATUS_ACTIVE); - Parameters parameters = Params.valueOf(new RecognizedParams(null, Paging.valueOf(skipCount, maxItems), null, null, null, query, null), null, null); + Parameters parameters = Params.valueOf(new RecognizedParams(null, Paging.valueOf(skipCount, maxItems), null, null, null, query, null, false), null, null); CollectionWithPagingInfo result = processes.getProcesses(parameters);