Changeset 4967
- Timestamp:
- 04/14/14 12:44:56 (10 years ago)
- Location:
- vlo/branches/vlo-3.0/vlo-web-app/src
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/VloWebAppParameters.java
r4966 r4967 15 15 * along with this program. If not, see <http://www.gnu.org/licenses/>. 16 16 */ 17 18 17 package eu.clarin.cmdi.vlo; 19 18 … … 23 22 */ 24 23 public class VloWebAppParameters { 24 25 25 public final static String THEME = "theme"; 26 26 public final static String DOCUMENT_ID = "docId"; 27 27 public static final String QUERY = "q"; 28 28 public static final String FILTER_QUERY = "fq"; 29 public static final String FILTER_QUERY_TYPE = "fqType"; 29 30 } -
vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/pojo/FacetSelection.java
r4965 r4967 35 35 } 36 36 37 public FacetSelection(FacetSelectionType type) { 38 this(type, Lists.<String>newArrayList()); 39 } 40 37 41 public FacetSelection(FacetSelectionType selectionType, Collection<String> values) { 38 42 this.selectionType = selectionType; -
vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/service/solr/impl/QueryFacetsSelectionParametersConverter.java
r4966 r4967 18 18 19 19 import com.google.common.collect.Maps; 20 import static eu.clarin.cmdi.vlo.VloWebAppParameters.*; 20 21 import eu.clarin.cmdi.vlo.pojo.FacetSelection; 22 import eu.clarin.cmdi.vlo.pojo.FacetSelectionType; 21 23 import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection; 22 24 import eu.clarin.cmdi.vlo.service.PageParametersConverter; … … 27 29 import org.apache.wicket.request.mapper.parameter.PageParameters; 28 30 import org.apache.wicket.util.string.StringValue; 29 import static eu.clarin.cmdi.vlo.VloWebAppParameters.*; 31 import org.slf4j.Logger; 32 import org.slf4j.LoggerFactory; 30 33 31 34 /** … … 36 39 public class QueryFacetsSelectionParametersConverter implements PageParametersConverter<QueryFacetsSelection> { 37 40 41 public final static Logger logger = LoggerFactory.getLogger(QueryFacetsSelectionParametersConverter.class); 42 38 43 @Override 39 44 public QueryFacetsSelection fromParameters(PageParameters params) { 40 // Assuming AND. TODO: decode NOT,OR,not empty. Abandon multimap stategy?41 45 // Get query string from params 42 46 final String query = params.get(QUERY).toOptionalString(); 43 47 48 final List<StringValue> facetSelectionTypes = params.getValues(FILTER_QUERY_TYPE); 49 final List<StringValue> facetValues = params.getValues(FILTER_QUERY); 50 final HashMap<String, FacetSelection> selection = Maps.newHashMapWithExpectedSize(facetValues.size()); 51 52 for (StringValue selectionType : facetSelectionTypes) { 53 if (!selectionType.isEmpty()) { 54 final String[] fqType = selectionType.toString().split(":"); 55 if (fqType.length == 2) { 56 final String facet = fqType[0]; 57 final String type = fqType[1].toUpperCase(); 58 59 try { 60 final FacetSelectionType facetSelectionType = FacetSelectionType.valueOf(type); 61 selection.put(facet, new FacetSelection(facetSelectionType)); 62 } catch (IllegalArgumentException ex) { 63 logger.warn("Unknown selection type passed into query parameter {}: {}", FILTER_QUERY_TYPE, type); 64 } 65 } else { 66 logger.info("Illegal query parameter value for {}: {}", FILTER_QUERY_TYPE, selectionType); 67 } 68 } 69 } 70 44 71 // Get facet selections from params 45 final List<StringValue> facetValues = params.getValues(FILTER_QUERY);46 47 final HashMap<String, FacetSelection> selection = Maps.newHashMapWithExpectedSize(facetValues.size());48 72 for (StringValue facetValue : facetValues) { 49 73 if (!facetValue.isEmpty()) { 50 String[] fq = facetValue.toString().split(":");74 final String[] fq = facetValue.toString().split(":"); 51 75 if (fq.length == 2) { 52 76 // we have a facet - value pair … … 58 82 selection.put(facet, new FacetSelection(Arrays.asList(value))); 59 83 } 84 } else { 85 logger.info("Illegal query parameter value for {}: {}", FILTER_QUERY, facetValue); 60 86 } 61 87 } -
vlo/branches/vlo-3.0/vlo-web-app/src/test/java/eu/clarin/cmdi/vlo/service/impl/QueryFacetsSelectionParametersConverterTest.java
r4963 r4967 20 20 import com.google.common.collect.Maps; 21 21 import eu.clarin.cmdi.vlo.pojo.FacetSelection; 22 import eu.clarin.cmdi.vlo.pojo.FacetSelectionType; 22 23 import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection; 23 24 import java.util.Arrays; … … 59 60 params.add("fq", "facet1:valueB"); 60 61 params.add("fq", "facet2:valueC"); 62 params.add("fq", "illegal-no-colon"); //should get ignored 61 63 params.add("fq", ""); // not a valid facet selection 62 64 params.add("fq", "invalid"); // not a valid facet selection 65 params.add("fqType", "facet1:or"); 66 params.add("fqType", "facet3:not_empty"); 67 params.add("fqType", "facet4:illegaltype"); //should get ignored 68 params.add("fqType", "illegal-no-colon"); //should get ignored 63 69 64 70 final QueryFacetsSelection result = instance.fromParameters(params); 65 71 assertEquals("query", result.getQuery()); 66 assertEquals( 2, result.getFacets().size());72 assertEquals(3, result.getFacets().size()); 67 73 assertThat(result.getFacets(), hasItem("facet1")); 68 74 assertThat(result.getFacets(), hasItem("facet2")); … … 70 76 assertThat(result.getSelectionValues("facet1").getValues(), hasItem("valueB")); 71 77 assertThat(result.getSelectionValues("facet2").getValues(), hasItem("valueC")); 78 // OR explicitly set 79 assertEquals(FacetSelectionType.OR, result.getSelectionValues("facet1").getSelectionType()); 80 // AND is default 81 assertEquals(FacetSelectionType.AND, result.getSelectionValues("facet2").getSelectionType()); 82 // NOT_EMPTY explicitly set 83 assertEquals(FacetSelectionType.NOT_EMPTY, result.getSelectionValues("facet3").getSelectionType()); 72 84 } 73 85
Note: See TracChangeset
for help on using the changeset viewer.