001    package com.poemspace.dm4;
002    
003    import java.util.HashMap;
004    import java.util.Map;
005    
006    import de.deepamehta.core.RelatedTopic;
007    import de.deepamehta.core.TopicType;
008    import de.deepamehta.core.model.AssociationDefinitionModel;
009    import de.deepamehta.core.service.DeepaMehtaService;
010    
011    public class MigrationUtils {
012    
013        public static final String AFFILIATION = "dm4.poemspace.affiliation";
014    
015        public static final String ART = "dm4.poemspace.art";
016    
017        public static final String LIST = "dm4.poemspace.list";
018    
019        public static final String PRESS = "dm4.poemspace.press";
020    
021        public static final String PROJECT = "dm4.poemspace.project";
022    
023        public static final String PUBLIC = "dm4.poemspace.public";
024    
025        public static final String YEAR = "dm4.poemspace.year";
026    
027        public static String[] CONTACT_URIS = { "dm4.contacts.person", "dm4.contacts.institution" };
028    
029        public static void changeIcon(DeepaMehtaService dms, String typeUri, String iconPath) {
030            dms.getTopicType(typeUri).getViewConfig()
031                    .addSetting("dm4.webclient.view_config", "dm4.webclient.icon", iconPath);
032        }
033    
034        public static void addCriteriaAssocDefs(DeepaMehtaService dms, String typeUri,
035                String... criteriaTypeUris) {
036            TopicType topicType = dms.getTopicType(typeUri);
037            for (String uri : criteriaTypeUris) {
038                topicType.addAssocDef(new AssociationDefinitionModel("dm4.core.aggregation_def",//
039                        typeUri, uri, "dm4.core.one", "dm4.core.many"));
040            }
041        }
042    
043        public static Map<String, Long> getIdsByValue(DeepaMehtaService dms, String typeUri) {
044            HashMap<String, Long> map = new HashMap<String, Long>();
045            for (RelatedTopic topic : dms.getTopics(typeUri, false, 0).getItems()) {
046                map.put(topic.getSimpleValue().toString(), topic.getId());
047            }
048            return map;
049        }
050    
051    }