001    package org.deepamehta.plugins.wikidata.migrations;
002    
003    import de.deepamehta.core.AssociationType;
004    import de.deepamehta.core.Topic;
005    import de.deepamehta.core.TopicType;
006    import de.deepamehta.core.model.*;
007    import de.deepamehta.core.service.Migration;
008    import java.util.logging.Logger;
009    
010    
011    /*
012     * A very basic plugin for searching and turning wikidata-properties into association-types.
013     *
014     * @author Malte Reißig (<malte@mikromedia.de>)
015     * @website https://github.com/mukil/dm4-wikidata
016     */
017    
018    public class Migration4 extends Migration {
019    
020        private Logger log = Logger.getLogger(getClass().getName());
021    
022        private final static String WD_SEARCH_ENTITY_TYPE = "org.deepamehta.wikidata.search_entity_type";
023        private final static String WD_SEARCH_ENTITY = "org.deepamehta.wikidata.search_entity";
024    
025        @Override
026        public void run() {
027    
028            // 1) fetch my two topic-types
029            TopicType searchEntity = dms.getTopicType(WD_SEARCH_ENTITY);
030            TopicType searchEntityType = dms.getTopicType(WD_SEARCH_ENTITY_TYPE);
031            // 2) relate my new topic-type to the existing one
032            searchEntity.addAssocDef(new AssociationDefinitionModel("dm4.core.composition_def",
033                    searchEntity.getUri(), searchEntityType.getUri(), "dm4.core.one", "dm4.core.one"));
034            log.info("1) Assigned \"Search Entity Type\" to \"Search Entity\"");
035            // "dm4.webclient.page_renderer_uri" : "org.deepamehta.wikidata.search_entity_renderer"
036            // log.info("2) Assigned new search entity renderer to \"Search Entity\" Topic Type");
037            // ### Do so when dm4-core is fixed: remove assocDef "org.deepamehta.wikidata.language" from WD_SEARCH_ENTITY
038            // searchEntity.removeAssocDef("org.deepamehta.wikidata.language");
039    
040        }
041    
042    }