001    package org.deepamehta.plugins.moodle.migrations;
002    
003    import de.deepamehta.core.RelatedTopic;
004    import de.deepamehta.core.Topic;
005    import de.deepamehta.core.model.SimpleValue;
006    import de.deepamehta.core.service.Directives;
007    import de.deepamehta.core.service.Migration;
008    import de.deepamehta.core.service.ResultList;
009    import java.util.logging.Logger;
010    import org.deepamehta.plugins.moodle.MoodleServiceClient;
011    
012    public class Migration5 extends Migration {
013    
014        private Logger logger = Logger.getLogger(getClass().getName());
015    
016        @Override
017        public void run() {
018    
019            String usage_type_uri = "org.deepamehta.moodle.usage_report";
020            // 1) Delete all instance of usage reports
021            ResultList<RelatedTopic> usage_reports = dms.getTopics(usage_type_uri, false, 0);
022            for (int i=0; i < usage_reports.getItems().size(); i++) {
023                RelatedTopic usage_report = usage_reports.getItems().get(i);
024                logger.info("Migration 5 deleting \"Moodle Usage Report\"-Topic " + usage_report.getId());
025                dms.deleteTopic(usage_report.getId());
026            }
027            // 2) Delete "Usage Report"-Type
028            dms.getTopicType(usage_type_uri).delete(new Directives());
029            logger.info("Migration 5 deleted \"Moodle Usage Report\"-TopicType");
030            //
031            String moodle_config_type_uri =  "org.deepamehta.moodle.web_service_url";
032            // 3) Delete all instances of type to be deleted
033            ResultList<RelatedTopic> service_urls = dms.getTopics(moodle_config_type_uri, false, 0);
034            for (int i=0; i < service_urls.getItems().size(); i++) {
035                RelatedTopic service_url = service_urls.getItems().get(i);
036                logger.info("Migration 5 deleting \"Moodle Web Service URL\"-Topic " + service_url.getId());
037                dms.deleteTopic(service_url.getId());
038            }
039            // 4) Delete "Moodle Service URL"-Type
040            dms.getTopicType(moodle_config_type_uri).delete(new Directives());
041            // logger.info("Migration 5 deleted \"Moodle Web Service URL\"-TopicType");
042            // 5) Fix Moodle WS-Name Topic
043            Topic moodle_ws = dms.getTopic("uri", new SimpleValue("org.deepamehta.workspaces.moodle"), true);
044                moodle_ws.getCompositeValue().set("dm4.workspaces.name", MoodleServiceClient.WS_MOODLE_NAME,
045                        null, new Directives());
046        }
047    
048    }