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 }