Changeset 6379


Ignore:
Timestamp:
07/09/15 10:31:55 (9 years ago)
Author:
davor.ostojic@oeaw.ac.at
Message:

variant maps are left static and moved back to specific PostProcessorsWithMaps?

Location:
vlo/branches/vlo-3.3-oeaw/vlo-importer/src
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • vlo/branches/vlo-3.3-oeaw/vlo-importer/src/main/java/eu/clarin/cmdi/vlo/importer/AvailabilityPostProcessor.java

    r6366 r6379  
    33import java.util.ArrayList;
    44import java.util.List;
     5import java.util.Map;
    56
    67/**
     
    1011public class AvailabilityPostProcessor extends PostProcessorsWithVocabularyMap {
    1112
    12     private static final Integer MAX_LENGTH = 20;
     13        private static Map<String, String> availabilityMap;
     14   
     15        private static final Integer MAX_LENGTH = 20;
    1316    private static final String OTHER_VALUE = "Other";
     17   
    1418
    1519    @Override
     
    3135    }
    3236   
    33     @Override
    34     protected String getMappingFileUrl() {
    35         return MetadataImporter.config.getLicenseAvailabilityMapUrl();
     37    public Map<String, String> getVocabularyMap(){
     38        if(availabilityMap == null){
     39                availabilityMap = createControlledVocabularyMap(MetadataImporter.config.getLicenseAvailabilityMapUrl());
     40                 }
     41       
     42                 return availabilityMap;
    3643    }
    3744}
  • vlo/branches/vlo-3.3-oeaw/vlo-importer/src/main/java/eu/clarin/cmdi/vlo/importer/LanguageCodePostProcessor.java

    r6366 r6379  
    33import java.util.ArrayList;
    44import java.util.List;
     5import java.util.Map;
    56import java.util.regex.Matcher;
    67import java.util.regex.Pattern;
     
    1415
    1516    private final static Logger LOG = LoggerFactory.getLogger(LanguageCodePostProcessor.class);
     17    private static Map<String, String> languageNameVariantsMap = null;
    1618   
    1719    protected static final String CODE_PREFIX = "code:";
     
    4244   
    4345    @Override
    44     protected String getMappingFileUrl() {
    45         return MetadataImporter.config.getLanguageNameVariantsUrl();
    46     }
     46        protected Map<String, String> getVocabularyMap() {
     47                if(languageNameVariantsMap == null){
     48                        languageNameVariantsMap = createControlledVocabularyMap(MetadataImporter.config.getLanguageNameVariantsUrl());
     49                }
     50                return languageNameVariantsMap;
     51        }
    4752   
    4853
  • vlo/branches/vlo-3.3-oeaw/vlo-importer/src/main/java/eu/clarin/cmdi/vlo/importer/NationalProjectPostProcessor.java

    r6369 r6379  
    11package eu.clarin.cmdi.vlo.importer;
    22
    3 import java.io.InputStream;
    43import java.util.ArrayList;
    54import java.util.HashMap;
     
    2726    private final static Logger LOG = LoggerFactory.getLogger(NationalProjectPostProcessor.class);
    2827
     28    private static Map<String, String> nationalProjectMap = null;
    2929    private static Map<Pattern, String> nationalProjectRegExpMap = null;
    3030
     
    5858    }
    5959   
     60    @Override
     61        protected Map<String, String> getVocabularyMap() {
     62                if(nationalProjectMap == null){
     63                        createControlledVocabularyMap(getMappingFileUrl());
     64                }
     65               
     66                return nationalProjectMap;
     67        }
     68   
    6069    private Map<Pattern, String> getRegExpMapping() {
    6170        if (nationalProjectRegExpMap == null) {
    62                 createControlledVocabularyMap();
     71                createControlledVocabularyMap(getMappingFileUrl());
    6372        }
    6473        return nationalProjectRegExpMap;
    6574    }
    6675   
    67     @Override
     76   
    6877        protected String getMappingFileUrl() {
    6978        String projectsMappingFile = MetadataImporter.config.getNationalProjectMapping();
     
    7685        return projectsMappingFile;
    7786        }
    78    
    79     @Override
    80     protected void createControlledVocabularyMap() {
    81         if(variantsMap == null){
    82                 variantsMap = new TreeMap<String, String>(String.CASE_INSENSITIVE_ORDER);
     87       
     88        @Override
     89        protected Map<String, String> createControlledVocabularyMap(String mapUrl) {
     90                if(nationalProjectMap == null){
     91                nationalProjectMap = new TreeMap<String, String>(String.CASE_INSENSITIVE_ORDER);
    8392        }
    8493       
     
    8796        }
    8897       
    89         try {
    90             // load records from file
    91                 // in the future this should be loaded from CLAVAS directly and the file only used as fallback                 
    92                 InputStream is = PostProcessorsWithVocabularyMap.class.getResourceAsStream(getMappingFileUrl());
    93                 VariantsMap map = (VariantsMap) VLOMarshaller.unmarshal(is, VariantsMap.class);
     98        VariantsMap map = getMappingFromFile(mapUrl);
    9499               
    95                 for(Entry<String, List<Variant>> entry: map.getMap().entrySet()){
    96                         for(Variant variant: entry.getValue()){
    97                                 if(variant.isRegExp()){
    98                                         nationalProjectRegExpMap.put(Pattern.compile(variant.getValue()), entry.getKey());
    99                                 }else{
    100                                         variantsMap.put(variant.getValue(), entry.getKey());
    101                                 }                               
    102                         }
    103                 }               
    104         } catch (Exception e) {
    105             throw new RuntimeException("Cannot instantiate postProcessor:", e);
     100        for(Entry<String, List<Variant>> entry: map.getMap().entrySet()){
     101                for(Variant variant: entry.getValue()){
     102                        if(variant.isRegExp()){
     103                                nationalProjectRegExpMap.put(Pattern.compile(variant.getValue()), entry.getKey());
     104                        }else{
     105                                nationalProjectMap.put(variant.getValue(), entry.getKey());
     106                        }                               
     107                }
    106108        }
    107     }
    108 
     109       
     110        return nationalProjectMap;
     111        }
     112   
    109113}
  • vlo/branches/vlo-3.3-oeaw/vlo-importer/src/main/java/eu/clarin/cmdi/vlo/importer/OrganisationPostProcessor.java

    r6366 r6379  
    33import java.util.Arrays;
    44import java.util.List;
     5import java.util.Map;
    56
    67public class OrganisationPostProcessor extends PostProcessorsWithVocabularyMap{
    78
    89
     10         private static Map<String, String> organisationNamesMap = null;
     11         
    912    /**
    1013     * Splits values for organisation facet at delimiter ';' and replaces
     
    3033   
    3134    @Override
    32     protected String getMappingFileUrl() {
    33         return MetadataImporter.config.getOrganisationNamesUrl();
    34     }
     35        protected Map<String, String> getVocabularyMap() {
     36                if(organisationNamesMap == null){
     37                        organisationNamesMap = createControlledVocabularyMap(MetadataImporter.config.getOrganisationNamesUrl());
     38                }
     39                return organisationNamesMap;
     40        }
    3541   
    3642    private String normalizeInputString(String value) {
     
    4147        return key.toLowerCase().replaceAll("-", " ");
    4248    }
     49
     50       
    4351   
    4452   
  • vlo/branches/vlo-3.3-oeaw/vlo-importer/src/main/java/eu/clarin/cmdi/vlo/importer/PostProcessorsWithVocabularyMap.java

    r6378 r6379  
    2020       
    2121         private final static Logger LOG = LoggerFactory.getLogger(PostProcessorsWithVocabularyMap.class);
    22        
    23          protected static Map<String, String> variantsMap = null;
     22                 
    2423         
    2524         /*
    26           * returns url of mappingFile
     25          * returns specific static map and should call createControlledVocabularyMap
    2726          */
    28          protected abstract String getMappingFileUrl();
     27         protected abstract Map<String, String> getVocabularyMap();
    2928         
    30          @Override
    31         public abstract List<String> process(String value);
     29                 
     30         protected Map<String, String> createControlledVocabularyMap(String mapUrl) {
     31                 VariantsMap map = getMappingFromFile(mapUrl);
     32         return map.getInvertedMap();
     33          }
    3234         
    33          public Map<String, String> getVocabularyMap(){
    34                  if(variantsMap == null){
    35                          createControlledVocabularyMap();
    36                  }
    37                  
    38                  return variantsMap;
     35         protected VariantsMap getMappingFromFile(String mapUrl){
     36                 try {
     37                       
     38                        LOG.info("Reading configuration file from: {}", mapUrl);
     39                    // load records from file
     40                        // in the future this should be loaded from CLAVAS directly and the file only used as fallback                 
     41                        InputStream is = PostProcessorsWithVocabularyMap.class.getResourceAsStream(mapUrl);     
     42                        return (VariantsMap) VLOMarshaller.unmarshal(is, VariantsMap.class);
     43             } catch (Exception e) {
     44            throw new RuntimeException("Cannot instantiate postProcessor:", e);
     45         }
    3946         }
    40                  
    41          protected void createControlledVocabularyMap() {
    42         try {
    43                
    44                 LOG.info("Reading configuration file from: {}", getMappingFileUrl());
    45             // load records from file
    46                 // in the future this should be loaded from CLAVAS directly and the file only used as fallback                 
    47                 InputStream is = PostProcessorsWithVocabularyMap.class.getResourceAsStream(getMappingFileUrl());       
    48                 VariantsMap map = (VariantsMap) VLOMarshaller.unmarshal(is, VariantsMap.class);
    49                 variantsMap =  map.getInvertedMap();
    50         } catch (Exception e) {
    51             throw new RuntimeException("Cannot instantiate postProcessor:", e);
    52         }
    53           }
    5447         
    5548         // for debug purposes
  • vlo/branches/vlo-3.3-oeaw/vlo-importer/src/test/java/eu/clarin/cmdi/vlo/importer/AvailabilityPostProcessorTest.java

    r6377 r6379  
    1010    @Test
    1111    public void testLanguageCode() {
    12         PostProcessor processor = new AvailabilityPostProcessor();
    13         ((AvailabilityPostProcessor)processor).printMap();       
     12        PostProcessor processor = new AvailabilityPostProcessor();     
    1413        assertEquals("Free", processor.process("Apache Licence 2.0").get(0));
    1514        assertEquals("Free", processor.process("Open Access").get(0));
Note: See TracChangeset for help on using the changeset viewer.