Merged searchapi (5.2.1) to 5.2.N (5.2.1)

130061 gjames: SEARCH-120: Facet queries label support


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@130300 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Gethin James
2016-09-06 15:39:04 +00:00
parent 912123029d
commit de4bf3db68
2 changed files with 28 additions and 7 deletions

View File

@@ -203,6 +203,8 @@ public class SearchMapper
{ {
for (Template aTemplate:templates) for (Template aTemplate:templates)
{ {
ParameterCheck.mandatoryString("template name", aTemplate.getName());
ParameterCheck.mandatoryString("template template", aTemplate.getTemplate());
sp.addQueryTemplate(aTemplate.getName(), aTemplate.getTemplate()); sp.addQueryTemplate(aTemplate.getName(), aTemplate.getTemplate());
} }
} }
@@ -270,6 +272,7 @@ public class SearchMapper
{ {
for (FilterQuery fq:filterQueries) for (FilterQuery fq:filterQueries)
{ {
ParameterCheck.mandatoryString("filterQueries query", fq.getQuery());
sp.addFilterQuery(fq.getQuery()); sp.addFilterQuery(fq.getQuery());
} }
} }
@@ -286,7 +289,17 @@ public class SearchMapper
{ {
for (FacetQuery fq:facetQueries) for (FacetQuery fq:facetQueries)
{ {
sp.addFacetQuery(fq.getQuery()); ParameterCheck.mandatoryString("facetQuery query", fq.getQuery());
String query = fq.getQuery();
String label = fq.getLabel()!=null?fq.getLabel():query;
if (query.startsWith("{!afts"))
{
throw new InvalidArgumentException(InvalidArgumentException.DEFAULT_MESSAGE_ID,
new Object[] { ": Facet queries should not start with !afts" });
}
query = "{!afts key='"+label+"'}"+query;
sp.addFacetQuery(query);
} }
} }
} }

View File

@@ -312,13 +312,21 @@ public class SearchMapperTests
//Doesn't error //Doesn't error
searchMapper.fromFacetQuery(searchParameters, null); searchMapper.fromFacetQuery(searchParameters, null);
searchMapper.fromFacetQuery(searchParameters, Arrays.asList(new FacetQuery("ping", null), new FacetQuery("pong", "table"), new FacetQuery("pang", "tennis"))); searchMapper.fromFacetQuery(searchParameters, Arrays.asList(new FacetQuery("ping", null), new FacetQuery("pong", "table")));
assertEquals(3 ,searchParameters.getFacetQueries().size()); assertEquals(2 ,searchParameters.getFacetQueries().size());
assertEquals("ping" ,searchParameters.getFacetQueries().get(0)); assertEquals("{!afts key='ping'}ping" ,searchParameters.getFacetQueries().get(0));
assertEquals("pong" ,searchParameters.getFacetQueries().get(1)); assertEquals("{!afts key='table'}pong" ,searchParameters.getFacetQueries().get(1));
assertEquals("pang" ,searchParameters.getFacetQueries().get(2));
//label isn't used at the moment try
{
searchMapper.fromFacetQuery(searchParameters, Arrays.asList(new FacetQuery("ping", null),new FacetQuery("{!afts}pang", "tennis")));
fail();
}
catch (InvalidArgumentException iae)
{
//Cannot start with afts
assertNotNull(iae);
}
} }