/* * Copyright 2009 GBIF. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. */ package org.gbif.ipt.mock; import org.gbif.ipt.config.Constants; import org.gbif.ipt.model.Vocabulary; import org.gbif.ipt.model.VocabularyConcept; import org.gbif.ipt.model.VocabularyTerm; import org.gbif.ipt.service.InvalidConfigException; import org.gbif.ipt.service.admin.VocabulariesManager; import org.gbif.ipt.utils.IptMockBaseTest; import java.io.IOException; import java.net.URI; import java.net.URL; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Locale; import java.util.Map; /** * Mocked VocabulariesManager, for use in TestClasses. */ public class MockVocabulariesManager extends IptMockBaseTest implements VocabulariesManager { /** * Get one of the installed vocabularies by its unique identifier, populate its list of VocabularyConcept, and * return it. */ public Vocabulary get(String uri) { Vocabulary v = new Vocabulary(); Map<String, String> vocabMap = getI18nVocab(uri, Locale.getDefault().getDisplayLanguage(), false); for (Map.Entry<String, String> stringStringEntry : vocabMap.entrySet()) { VocabularyConcept concept = new VocabularyConcept(); concept.setIdentifier(stringStringEntry.getKey()); VocabularyTerm term = new VocabularyTerm(); term.setTitle(stringStringEntry.getValue()); term.setLang("en"); concept.addPreferredTerm(term); v.addConcept(concept); } return v; } @Override public Vocabulary get(URL url) { return null; } @Override public Vocabulary install(URL url) { return null; } public Vocabulary get(URI uri) { return new Vocabulary(); } /** * Mock minimal copies of rank, country, language, and preservation method vocabularies being installed. */ public Map<String, String> getI18nVocab(String uri, String lang, boolean sort) { Map<String, String> vocabMap = new LinkedHashMap<String, String>(); if (uri.equals(Constants.VOCAB_URI_RANKS)) { vocabMap.put("domain", "domain"); vocabMap.put("kingdom", "kingdom"); vocabMap.put("phylum", "phylum"); vocabMap.put("class", "class"); vocabMap.put("order", "order"); vocabMap.put("family", "family"); vocabMap.put("tribe", "tribe"); vocabMap.put("genus", "genus"); vocabMap.put("section", "section"); vocabMap.put("species", "species"); vocabMap.put("variety", "variety"); vocabMap.put("form", "form"); vocabMap.put("cultivar", "cultivar"); } else if (uri.equals(Constants.VOCAB_URI_COUNTRY)) { vocabMap.put("CO", "COLOMBIA"); vocabMap.put("DK", "DENMARK"); vocabMap.put("DE", "GERMANY"); vocabMap.put("US", "UNITED STATES"); vocabMap.put("BG", "BULGARIA"); vocabMap.put("IN", "INDIA"); vocabMap.put("NL", "NETHERLANDS"); } else if (uri.equals(Constants.VOCAB_URI_LANGUAGE)) { vocabMap.put("eng", "English"); vocabMap.put("spa", "Spanish"); vocabMap.put("ger", "German"); vocabMap.put("fre", "French"); vocabMap.put("dut", "Dutch"); vocabMap.put("est", "Estonian"); } else if (uri.equals(Constants.VOCAB_URI_PRESERVATION_METHOD)) { vocabMap.put("noTreatment", "No treatment"); vocabMap.put("alcohol", "Alcohol"); vocabMap.put("deepFrozen", "Deep frozen"); vocabMap.put("dried", "Dried"); vocabMap.put("driedAndPressed", "Dried and pressed"); vocabMap.put("formalin", "Formalin"); vocabMap.put("refrigerated", "Refrigerated"); vocabMap.put("freezeDried", "Freeze-dried"); vocabMap.put("glycerin", "Glycerin"); vocabMap.put("gumArabic", "Gum arabic"); vocabMap.put("microscopicPreparation", "Microscopic preparation"); vocabMap.put("mounted", "Mounted"); vocabMap.put("pinned", "Pinned"); vocabMap.put("other", "Other"); } return vocabMap; } public List<Vocabulary> list() { return new ArrayList<Vocabulary>(); } public int load() { return 0; } @Override public void installOrUpdateDefaults() throws InvalidConfigException { } @Override public boolean updateIfChanged(String uri) throws IOException, InvalidConfigException { return false; } }