From 347aedfa1b44bdd13581bfcba48b9912ecdff5ea Mon Sep 17 00:00:00 2001 From: Gethin James Date: Tue, 6 Sep 2016 14:18:54 +0000 Subject: [PATCH] Merged searchapi (5.2.1) to 5.2.N (5.2.1) 129819 gjames: SEARCH-113: The Json representation is immutable. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@130179 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../alfresco/rest/api/search/model/Query.java | 31 ++++++++----------- .../rest/api/search/model/SearchQuery.java | 24 +++++++------- .../rest/api/search/ResultMapperTests.java | 4 +-- .../rest/api/search/SearchMapperTests.java | 24 ++++++-------- 4 files changed, 36 insertions(+), 47 deletions(-) diff --git a/source/java/org/alfresco/rest/api/search/model/Query.java b/source/java/org/alfresco/rest/api/search/model/Query.java index 6699164ac0..841eaf877d 100644 --- a/source/java/org/alfresco/rest/api/search/model/Query.java +++ b/source/java/org/alfresco/rest/api/search/model/Query.java @@ -26,18 +26,27 @@ package org.alfresco.rest.api.search.model; +import org.codehaus.jackson.annotate.JsonCreator; +import org.codehaus.jackson.annotate.JsonProperty; + /** * POJO class representing the query element of the JSON body **/ public class Query { - String language; - String query; - String userQuery; + private final String language; + private final String query; + private final String userQuery; - public Query() + @JsonCreator + public Query(@JsonProperty("language") String language, + @JsonProperty("query") String query, + @JsonProperty("userQuery") String userQuery) { + this.language = language; + this.query = query; + this.userQuery = userQuery; } public String getLanguage() @@ -45,28 +54,14 @@ public class Query return language; } - public void setLanguage(String language) - { - this.language = language; - } - public String getQuery() { return query; } - public void setQuery(String query) - { - this.query = query; - } - public String getUserQuery() { return userQuery; } - public void setUserQuery(String userQuery) - { - this.userQuery = userQuery; - } } diff --git a/source/java/org/alfresco/rest/api/search/model/SearchQuery.java b/source/java/org/alfresco/rest/api/search/model/SearchQuery.java index e493b10e23..cd47a4dde0 100644 --- a/source/java/org/alfresco/rest/api/search/model/SearchQuery.java +++ b/source/java/org/alfresco/rest/api/search/model/SearchQuery.java @@ -27,6 +27,8 @@ package org.alfresco.rest.api.search.model; import org.alfresco.rest.framework.resource.parameters.Paging; +import org.codehaus.jackson.annotate.JsonCreator; +import org.codehaus.jackson.annotate.JsonProperty; /** * POJO class representing the JSON body for a search request @@ -35,11 +37,17 @@ import org.alfresco.rest.framework.resource.parameters.Paging; */ public class SearchQuery { - Query query; - Paging paging; + private final Query query; + private final Paging paging; - public SearchQuery() + public static final SearchQuery EMPTY = new SearchQuery(null, null); + + @JsonCreator + public SearchQuery(@JsonProperty("query") Query query, + @JsonProperty("paging") Paging paging) { + this.query = query; + this.paging = paging; } public Query getQuery() @@ -47,18 +55,8 @@ public class SearchQuery return query; } - public void setQuery(Query query) - { - this.query = query; - } - public Paging getPaging() { return paging; } - - public void setPaging(Paging paging) - { - this.paging = paging; - } } diff --git a/source/test-java/org/alfresco/rest/api/search/ResultMapperTests.java b/source/test-java/org/alfresco/rest/api/search/ResultMapperTests.java index b73c33db50..f09aca5641 100644 --- a/source/test-java/org/alfresco/rest/api/search/ResultMapperTests.java +++ b/source/test-java/org/alfresco/rest/api/search/ResultMapperTests.java @@ -111,7 +111,7 @@ public class ResultMapperTests @Test public void testNoResults() throws Exception { - CollectionWithPagingInfo collection = mapper.toCollectionWithPagingInfo(mockParams(new SearchQuery()),new EmptyResultSet()); + CollectionWithPagingInfo collection = mapper.toCollectionWithPagingInfo(mockParams(SearchQuery.EMPTY),new EmptyResultSet()); assertNotNull(collection); assertFalse(collection.hasMoreItems()); assertTrue(collection.getTotalItems() < 1); @@ -121,7 +121,7 @@ public class ResultMapperTests public void testToCollectionWithPagingInfo() throws Exception { ResultSet results = mockResultset(); - CollectionWithPagingInfo collectionWithPage = mapper.toCollectionWithPagingInfo(mockParams(new SearchQuery()),results); + CollectionWithPagingInfo collectionWithPage = mapper.toCollectionWithPagingInfo(mockParams(SearchQuery.EMPTY),results); assertNotNull(collectionWithPage); Long found = results.getNumberFound(); assertEquals(found.intValue(), collectionWithPage.getTotalItems().intValue()); diff --git a/source/test-java/org/alfresco/rest/api/search/SearchMapperTests.java b/source/test-java/org/alfresco/rest/api/search/SearchMapperTests.java index 2fd6fd65e5..8acad2bb39 100644 --- a/source/test-java/org/alfresco/rest/api/search/SearchMapperTests.java +++ b/source/test-java/org/alfresco/rest/api/search/SearchMapperTests.java @@ -55,7 +55,7 @@ public class SearchMapperTests @Test(expected = IllegalArgumentException.class) public void testMandatory() throws Exception { - SearchParameters searchParameters = searchMapper.toSearchParameters(new SearchQuery()); + SearchParameters searchParameters = searchMapper.toSearchParameters(SearchQuery.EMPTY); } @Test @@ -75,15 +75,14 @@ public class SearchMapperTests SearchParameters searchParameters = new SearchParameters(); try { - searchMapper.fromQuery(searchParameters, new Query()); + searchMapper.fromQuery(searchParameters, new Query(null,null, null)); fail(); } catch (IllegalArgumentException iae) { assertTrue(iae.getLocalizedMessage().contains("query is a mandatory parameter")); } - Query q = new Query(); - q.setQuery("hello"); + Query q = new Query(null,"hello", null); try { @@ -94,7 +93,7 @@ public class SearchMapperTests assertTrue(iae.getLocalizedMessage().contains("language is a mandatory parameter")); } - q.setLanguage("world"); + q = new Query("world", "hello", null); try { @@ -106,21 +105,21 @@ public class SearchMapperTests //world is not a valid language type } - q.setLanguage("afts"); + q = new Query("afts", "hello", null); searchMapper.fromQuery(searchParameters, q); assertEquals(LANGUAGE_FTS_ALFRESCO, searchParameters.getLanguage()); - q.setLanguage("cMiS"); + q = new Query("cMiS", "hello", null); searchMapper.fromQuery(searchParameters, q); assertEquals(LANGUAGE_CMIS_ALFRESCO, searchParameters.getLanguage()); - q.setLanguage("LuCENE"); + q = new Query("LuCENE", "hello", null); searchMapper.fromQuery(searchParameters, q); assertEquals(LANGUAGE_LUCENE, searchParameters.getLanguage()); assertEquals("hello", searchParameters.getQuery()); - q.setUserQuery("Heload"); + q = new Query("LuCENE", "hello", "Heload"); searchMapper.fromQuery(searchParameters, q); assertEquals("Heload", searchParameters.getSearchTerm()); } @@ -139,11 +138,8 @@ public class SearchMapperTests private SearchQuery minimalQuery() { - SearchQuery sq = new SearchQuery(); - Query query = new Query(); - sq.setQuery(query); - query.setQuery("foo"); - query.setLanguage("cmis"); + Query query = new Query("cmis", "foo", ""); + SearchQuery sq = new SearchQuery(query,null); return sq; } }