Changeset 6023


Ignore:
Timestamp:
02/23/15 16:23:11 (9 years ago)
Author:
Twan Goosen
Message:

Added an interface + service implementation that maps facets and facet values. Concretely, 'language' maps to 'languageCode' to preserve the validity of existing links

Location:
vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo
Files:
2 added
2 edited

Legend:

Unmodified
Added
Removed
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/config/VloServicesSpringConfig.java

    r6022 r6023  
    2121import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection;
    2222import eu.clarin.cmdi.vlo.pojo.SearchContext;
     23import eu.clarin.cmdi.vlo.service.FacetParameterMapper;
    2324import eu.clarin.cmdi.vlo.service.FieldFilter;
    2425import eu.clarin.cmdi.vlo.service.PageParametersConverter;
     
    3132import eu.clarin.cmdi.vlo.service.impl.DocumentParametersConverter;
    3233import eu.clarin.cmdi.vlo.service.impl.ExclusiveFieldFilter;
     34import eu.clarin.cmdi.vlo.service.impl.FacetParameterMapperImpl;
    3335import eu.clarin.cmdi.vlo.service.impl.InclusiveFieldFilter;
    3436import eu.clarin.cmdi.vlo.service.impl.QueryFacetsSelectionParametersConverter;
     
    8587        return new HandleRestApiClient();
    8688    }
     89   
     90    @Bean
     91    public FacetParameterMapper facetParameterMapper() {
     92        return new FacetParameterMapperImpl(languageCodeUtils());
     93    }
    8794
    8895    @Bean(name = "queryParametersConverter")
    8996    public PageParametersConverter<QueryFacetsSelection> queryParametersConverter() {
    90         return new QueryFacetsSelectionParametersConverter(vloConfig);
     97        return new QueryFacetsSelectionParametersConverter(vloConfig, facetParameterMapper());
    9198    }
    9299
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/service/impl/QueryFacetsSelectionParametersConverter.java

    r6022 r6023  
    2525import eu.clarin.cmdi.vlo.pojo.FacetSelectionType;
    2626import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection;
     27import eu.clarin.cmdi.vlo.service.FacetParameterMapper;
    2728import eu.clarin.cmdi.vlo.service.PageParametersConverter;
    2829import java.util.Arrays;
     
    5354
    5455    private final Set<String> facetsDefined;
     56    private final FacetParameterMapper facetParamMapper;
    5557
     58    /**
     59     * Constructs a converter that does not do any facet (value) mapping
     60     *
     61     * @param config VLO configuration
     62     * @see FacetParameterMapper.IdentityMapper
     63     */
    5664    public QueryFacetsSelectionParametersConverter(VloConfig config) {
    57         facetsDefined = ImmutableSet.copyOf(config.getAllFacetFields());
     65        this(config, new FacetParameterMapper.IdentityMapper());
     66    }
     67
     68    /**
     69     * Constructs a converter that applies the provided facet (value) mapping
     70     *
     71     * @param config VLO configuration
     72     * @param facetParamMapper mapper to apply to facet names and values
     73     */
     74    public QueryFacetsSelectionParametersConverter(VloConfig config, FacetParameterMapper facetParamMapper) {
     75        this.facetsDefined = ImmutableSet.copyOf(config.getAllFacetFields());
     76        this.facetParamMapper = facetParamMapper;
    5877    }
    5978
     
    7190                final List<String> fqType = FILTER_SPLITTER.splitToList(selectionType.toString());
    7291                if (fqType.size() == 2) {
    73                     final String facet = fqType.get(0);
     92                    final String facet = facetParamMapper.getFacet(fqType.get(0));
    7493                    final String type = fqType.get(1).toUpperCase();
    7594
     
    94113                if (fq.size() == 2) {
    95114                    // we have a facet - value pair
    96                     final String facet = fq.get(0);
    97                     final String value = fq.get(1);
     115                    final String requestedFacet = fq.get(0);
     116                    final String facet = facetParamMapper.getFacet(requestedFacet);
     117                    final String value = facetParamMapper.getValue(requestedFacet, fq.get(1));
    98118                    if (facetsDefined.contains(facet)) {
    99119                        if (selection.containsKey(facet)) {
Note: See TracChangeset for help on using the changeset viewer.