/* * This file is part of ADDIS (Aggregate Data Drug Information System). * ADDIS is distributed from http://drugis.org/. * Copyright © 2009 Gert van Valkenhoef, Tommi Tervonen. * Copyright © 2010 Gert van Valkenhoef, Tommi Tervonen, Tijs Zwinkels, * Maarten Jacobs, Hanno Koeslag, Florin Schimbinschi, Ahmad Kamal, Daniel * Reid. * Copyright © 2011 Gert van Valkenhoef, Ahmad Kamal, Daniel Reid, Florin * Schimbinschi. * Copyright © 2012 Gert van Valkenhoef, Daniel Reid, Joël Kuiper, Wouter * Reckman. * Copyright © 2013 Gert van Valkenhoef, Joël Kuiper. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.drugis.addis.gui; import java.util.HashMap; import java.util.Map; import org.drugis.addis.entities.AdverseEvent; import org.drugis.addis.entities.Drug; import org.drugis.addis.entities.Endpoint; import org.drugis.addis.entities.Entity; import org.drugis.addis.entities.EntityCategory; import org.drugis.addis.entities.Indication; import org.drugis.addis.entities.PopulationCharacteristic; import org.drugis.addis.entities.Study; import org.drugis.addis.entities.Unit; import org.drugis.addis.entities.analysis.BenefitRiskAnalysis; import org.drugis.addis.entities.analysis.NetworkMetaAnalysis; import org.drugis.addis.entities.analysis.PairWiseMetaAnalysis; import org.drugis.addis.entities.treatment.TreatmentCategorization; import org.drugis.addis.gui.knowledge.AdverseEventsKnowledge; import org.drugis.addis.gui.knowledge.BenefitRiskAnalysesKnowledge; import org.drugis.addis.gui.knowledge.TreatmentCategorizationKnowledge; import org.drugis.addis.gui.knowledge.DrugsKnowledge; import org.drugis.addis.gui.knowledge.EndpointsKnowledge; import org.drugis.addis.gui.knowledge.IndicationsKnowledge; import org.drugis.addis.gui.knowledge.NetworkMetaAnalysesKnowledge; import org.drugis.addis.gui.knowledge.PairWiseMetaAnalysesKnowledge; import org.drugis.addis.gui.knowledge.PopulationCharacteristicsKnowledge; import org.drugis.addis.gui.knowledge.StudiesKnowledge; import org.drugis.addis.gui.knowledge.UnitsKnowledge; public class CategoryKnowledgeFactory { private static final Map<Class<? extends Entity>, CategoryKnowledge> s_knowledge = new HashMap<Class<? extends Entity>, CategoryKnowledge>(); static { s_knowledge.put(Unit.class, new UnitsKnowledge()); s_knowledge.put(Indication.class, new IndicationsKnowledge()); s_knowledge.put(Drug.class, new DrugsKnowledge()); s_knowledge.put(TreatmentCategorization.class, new TreatmentCategorizationKnowledge()); s_knowledge.put(Endpoint.class, new EndpointsKnowledge()); s_knowledge.put(AdverseEvent.class, new AdverseEventsKnowledge()); s_knowledge.put(Study.class, new StudiesKnowledge()); s_knowledge.put(PairWiseMetaAnalysis.class, new PairWiseMetaAnalysesKnowledge()); s_knowledge.put(NetworkMetaAnalysis.class, new NetworkMetaAnalysesKnowledge()); s_knowledge.put(BenefitRiskAnalysis.class, new BenefitRiskAnalysesKnowledge()); PopulationCharacteristicsKnowledge popcharKnowledge = new PopulationCharacteristicsKnowledge(); s_knowledge.put(PopulationCharacteristic.class, popcharKnowledge); }; public static CategoryKnowledge getCategoryKnowledge(EntityCategory category) { return s_knowledge.get(category.getEntityClass()); } /** * Only use when you know the type at compile time, and only use for the identical type as * defined for the category. If you need run-time type determination, use Domain.getEntityCategory(entity). */ public static CategoryKnowledge getCategoryKnowledge(Class<? extends Entity> entityClass) { return s_knowledge.get(entityClass); } }