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 b37521b108..5ee8067dec 100644 --- a/source/java/org/alfresco/rest/framework/resource/parameters/Params.java +++ b/source/java/org/alfresco/rest/framework/resource/parameters/Params.java @@ -58,7 +58,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) @@ -76,7 +76,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) @@ -129,6 +129,11 @@ public class Params implements Parameters return this.recognizedParams.filter; } + public boolean includeSource() + { + return this.recognizedParams.includeSource; + } + public Map getRelationsFilter() { return this.recognizedParams.relationshipFilter; @@ -164,6 +169,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("]"); @@ -247,10 +254,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; @@ -260,6 +268,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 855e785960..0bc3f7d969 100644 --- a/source/java/org/alfresco/rest/framework/webscripts/ResourceWebScriptHelper.java +++ b/source/java/org/alfresco/rest/framework/webscripts/ResourceWebScriptHelper.java @@ -98,7 +98,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; @@ -695,13 +696,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 753efb4ef7..0b6f97302f 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 @@ -47,17 +47,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 1412991bb0..b35c660090 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 @@ -110,12 +110,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 64872894a6..af59468ebb 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 @@ -223,7 +223,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);