001    package de.deepamehta.core.migrations;
002    
003    import de.deepamehta.core.model.AssociationDefinitionModel;
004    import 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     */
014    public 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            dms.getAssociationType("dm4.core.aggregation_def").addAssocDefBefore(
021                new AssociationDefinitionModel("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            dms.getAssociationType("dm4.core.composition_def").addAssocDefBefore(
027                new AssociationDefinitionModel("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    }