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 }