Changeset 4224


Ignore:
Timestamp:
01/07/14 13:41:30 (10 years ago)
Author:
twagoo
Message:

No longer 'recycling' document attribute list iterator

File:
1 edited

Legend:

Unmodified
Added
Removed
  • vlo/branches/to-wicket-1.6/vlo_web_app/src/main/java/eu/clarin/cmdi/vlo/pages/DocumentAttributesDataProvider.java

    r4199 r4224  
    44import java.util.Collections;
    55import java.util.HashMap;
    6 import java.util.HashSet;
    76import java.util.Iterator;
    87import java.util.Map;
    9 import java.util.Set;
    108
    119import org.apache.solr.common.SolrDocument;
     
    1513
    1614import eu.clarin.cmdi.vlo.FacetConstants;
     15import java.util.Arrays;
     16import java.util.HashSet;
    1717
    18 public class DocumentAttributesDataProvider extends SortableDataProvider<DocumentAttribute,String>{
    19    
    20     private static final Set<String> IGNORE_FACETS = new HashSet<String>();
    21     static {
    22         IGNORE_FACETS.add(FacetConstants.FIELD_FORMAT);
    23     }
     18public class DocumentAttributesDataProvider extends SortableDataProvider<DocumentAttribute, String> {
     19
     20    private static final Map<String, Collection<Object>> NOT_FOUND_MAP = Collections.singletonMap("Document not found", (Collection<Object>) null);
     21    private static final Collection<String> IGNORE_FACETS = new HashSet<String>(Arrays.asList(FacetConstants.FIELD_FORMAT));
    2422
    2523    private static final long serialVersionUID = 1L;
    26    
    27     private transient DocumentAttributeList attributeList;
     24
     25    private final Map<String, Collection<Object>> fieldMap;
    2826
    2927    public DocumentAttributesDataProvider(SolrDocument solrDocument) {
    3028        if (solrDocument != null) {
    31             Map<String, Collection<Object>> fieldMap = new HashMap<String, Collection<Object>>();
     29            fieldMap = new HashMap<String, Collection<Object>>();
    3230            Map<String, Collection<Object>> fieldValuesMap = solrDocument.getFieldValuesMap();
    3331            for (String entry : fieldValuesMap.keySet()) {
     
    3634                }
    3735            }
    38             attributeList = new DocumentAttributeList(fieldMap);
     36
    3937        } else {
    40             attributeList = new DocumentAttributeList(Collections.singletonMap("Document not found", (Collection<Object>) null));
     38            fieldMap = null;
    4139        }
    4240    }
    43    
     41
    4442    private boolean ignoreEntry(String entry) {
    4543//        if(entry.equals(FacetConstants.FIELD_COMPLETE_METADATA)){
     
    5149    @Override
    5250    public Iterator<? extends DocumentAttribute> iterator(long first, long count) {
    53         return attributeList;
     51        if (fieldMap != null) {
     52            return new DocumentAttributeList(fieldMap);
     53        } else {
     54            return new DocumentAttributeList(NOT_FOUND_MAP);
     55        }
    5456    }
    5557
     
    6163    @Override
    6264    public long size() {
    63         return attributeList.size();
     65        if (fieldMap != null) {
     66            return fieldMap.size();
     67        } else {
     68            return NOT_FOUND_MAP.size();
     69        }
    6470    }
    6571
Note: See TracChangeset for help on using the changeset viewer.