001package de.deepamehta.core.service;
002
003import de.deepamehta.core.DeepaMehtaType;
004import de.deepamehta.core.service.ModelFactory;
005
006
007
008public abstract class Migration {
009
010    // ---------------------------------------------------------------------------------------------- Instance Variables
011
012    protected CoreService dm4;
013    protected ModelFactory mf;
014
015    // -------------------------------------------------------------------------------------------------- Public Methods
016
017    // ### TODO: make this internal. Define a public Migration interface?
018    public void setCoreService(CoreService dm4) {
019        this.dm4 = dm4;
020        this.mf = dm4.getModelFactory();
021    }
022
023    public abstract void run();
024
025    // ----------------------------------------------------------------------------------------------- Protected Methods
026
027    // Convenience method ### FIXME: belongs to Webclient module
028    protected final void addTopicTypeSetting(String topicTypeUri, String setting, Object value) {
029        addTypeSetting(dm4.getTopicType(topicTypeUri), setting, value);
030    }
031
032    // Convenience method ### FIXME: belongs to Webclient module
033    protected final void addAssociationTypeSetting(String assocTypeUri, String setting, Object value) {
034        addTypeSetting(dm4.getAssociationType(assocTypeUri), setting, value);
035    }
036
037    // ---
038
039    // Convenience method ### FIXME: belongs to Webclient module
040    protected final void addTypeSetting(DeepaMehtaType type, String setting, Object value) {
041        type.getViewConfig().addSetting("dm4.webclient.view_config", "dm4.webclient." + setting, value);
042    }
043}