001    package de.deepamehta.core.service;
002    
003    import de.deepamehta.core.Type;
004    import de.deepamehta.core.util.DeepaMehtaUtils;
005    
006    import java.io.InputStream;
007    
008    
009    
010    public abstract class Migration {
011    
012        // ---------------------------------------------------------------------------------------------- Instance Variables
013    
014        protected DeepaMehtaService dms;
015    
016        // -------------------------------------------------------------------------------------------------- Public Methods
017    
018        public void setCoreService(DeepaMehtaService dms) {
019            this.dms = dms;
020        }
021    
022        public abstract void run();
023    
024        // ----------------------------------------------------------------------------------------------- Protected Methods
025    
026        // Convenience method ### FIXME: belongs to Webclient module
027        protected final void addTopicTypeSetting(String topicTypeUri, String setting, Object value) {
028            addTypeSetting(dms.getTopicType(topicTypeUri), setting, value);
029        }
030    
031        // Convenience method ### FIXME: belongs to Webclient module
032        protected final void addAssociationTypeSetting(String assocTypeUri, String setting, Object value) {
033            addTypeSetting(dms.getAssociationType(assocTypeUri), setting, value);
034        }
035    
036        // ---
037    
038        // Convenience method ### FIXME: belongs to Webclient module
039        protected final void addTypeSetting(Type type, String setting, Object value) {
040            type.getViewConfig().addSetting("dm4.webclient.view_config", "dm4.webclient." + setting, value);
041        }
042    
043        // ---
044    
045        protected final void readMigrationFile(String migrationFile) {
046            InputStream migrationIn = getClass().getResourceAsStream(migrationFile);
047            DeepaMehtaUtils.readMigrationFile(migrationIn, migrationFile, dms);
048        }
049    }