001package de.deepamehta.core.migrations;
002
003import de.deepamehta.core.model.AssociationDefinitionModel;
004import de.deepamehta.core.service.Migration;
005
006
007
008/**
009 * Adds child type "Association Type" to "Composition Definition" and "Aggregation Definition" association types.
010 * Runs ALWAYS.
011 * <p>
012 * Part of DM 4.6
013 */
014public class Migration5 extends Migration {
015
016    @Override
017    public void run() {
018        // Note: "Aggregation Definition" must be updated before "Composition Definition" as the child type
019        // is added via "Aggregation Definition" and this very definition is changed here.
020        dm4.getAssociationType("dm4.core.aggregation_def").addAssocDefBefore(
021            mf.newAssociationDefinitionModel("dm4.core.aggregation_def", "dm4.core.custom_assoc_type",
022                "dm4.core.aggregation_def", "dm4.core.assoc_type", "dm4.core.many", "dm4.core.one"
023            ),
024            "dm4.core.include_in_label"
025        );
026        dm4.getAssociationType("dm4.core.composition_def").addAssocDefBefore(
027            mf.newAssociationDefinitionModel("dm4.core.aggregation_def", "dm4.core.custom_assoc_type",
028                "dm4.core.composition_def", "dm4.core.assoc_type", "dm4.core.many", "dm4.core.one"
029            ),
030            "dm4.core.include_in_label"
031        );
032    }
033}