Skip to content
Snippets Groups Projects
Commit 140dd977 authored by Erlend Stav's avatar Erlend Stav
Browse files

Updated transformations to support activators for different versions of middleware

parent be6c5d68
No related branches found
No related tags found
No related merge requests found
......@@ -186,40 +186,43 @@ import org.universAAL.middleware.owl.OntologyManagement;
public class Activator implements BundleActivator {
static BundleContext context = null;
'
'
ontNameList.keys()->forEach(oName:String){
'
'ontNameList.get(oName).firstToUpper()'Ontology _' ontNameList.get(oName) 'ontology = new ' ontNameList.get(oName).firstToUpper() 'Ontology();
'
' 'ontNameList.get(oName).firstToUpper()'Ontology _' ontNameList.get(oName) 'Ontology = new ' ontNameList.get(oName).firstToUpper() 'Ontology();\n'
}
'
public void start(BundleContext context) throws Exception {
Activator.context = context;
'
Activator.context = context;\n'
ontNameList.keys()->forEach(oName:String){
'
OntologyManagement.getInstance().register(_' ontNameList.get(oName) 'ontology);
'
' OntologyManagement.getInstance().register(_' ontNameList.get(oName) 'Ontology);\n'
}
'
}
' }
public void stop(BundleContext arg0) throws Exception {
'
public void stop(BundleContext arg0) throws Exception {\n'
ontNameList.keys()->forEach(oName:String){
'
OntologyManagement.getInstance().unregister(_' ontNameList.get(oName) 'ontology);
'
' OntologyManagement.getInstance().unregister(_' ontNameList.get(oName) 'Ontology);\n'
}
'
}
' }
}
'
}
uml.Package::generatMainOntologyClassStaticImports() {
'import org.universAAL.middleware.owl.BoundingValueRestriction;
import org.universAAL.middleware.owl.DataRepOntology;
import org.universAAL.middleware.owl.ManagedIndividual;
import org.universAAL.middleware.owl.MergedRestriction;
import org.universAAL.middleware.owl.OntClassInfoSetup;
import org.universAAL.middleware.owl.Ontology;
import org.universAAL.middleware.rdf.Resource;
import org.universAAL.middleware.rdf.TypeMapper;
import org.universAAL.middleware.service.owl.ServiceBusOntology;
import org.universAAL.ontology.location.LocationOntology;
'
}
uml.Package::generateMainOntologyClass(ontologyClassList:Hashtable, ontologyEnumerationList:Hashtable) {
......@@ -233,17 +236,8 @@ public class Activator implements BundleActivator {
'
package ' importName ';
import org.universAAL.middleware.owl.BoundingValueRestriction;
import org.universAAL.middleware.owl.DataRepOntology;
import org.universAAL.middleware.owl.ManagedIndividual;
import org.universAAL.middleware.owl.MergedRestriction;
import org.universAAL.middleware.owl.OntClassInfoSetup;
import org.universAAL.middleware.owl.Ontology;
import org.universAAL.middleware.rdf.Resource;
import org.universAAL.middleware.rdf.TypeMapper;
import org.universAAL.middleware.service.owl.ServiceBusOntology;
import org.universAAL.ontology.location.LocationOntology;
' self.generatMainOntologyClassStaticImports()
'
'
//use the import hastables to generate a complete list of imports.
//for each class in the ontologyClassList, get the import classes and put them into a new hashtable.
......
......@@ -13,6 +13,69 @@ texttransformation OntologyUML2Java_1_2_0 (in uml:"http://www.eclipse.org/uml2/3
super.processOntologyPackage()
}
uml.Package::generatMainOntologyClassStaticImports() {
'import org.universAAL.middleware.owl.BoundedValueRestriction;
import org.universAAL.middleware.owl.DataRepOntology;
import org.universAAL.middleware.owl.ManagedIndividual;
import org.universAAL.middleware.owl.MergedRestriction;
import org.universAAL.middleware.owl.OntClassInfoSetup;
import org.universAAL.middleware.owl.Ontology;
import org.universAAL.middleware.rdf.Resource;
import org.universAAL.middleware.rdf.TypeMapper;
import org.universAAL.middleware.service.owl.ServiceBusOntology;
import org.universAAL.ontology.location.LocationOntology;
'
}
uml.Model::generateActivator(ontNameList:Hashtable) {
StdOut.println("Generating activator for MW 1.2.0")
// First, find package name for activator
var mainPacakageName:String = " "
self.ownedMember -> forEach( p:uml.Package ) {
mainPacakageName = p.name.substring(0, p.name.lastIndexOf("."))
//break
}
file( javaBasePath + "/" + mainPacakageName.replace("\\.", "/") + '/' + ontologyName.firstToUpper() + "Activator.java" )
'
package ' mainPacakageName ';
import org.universAAL.middleware.container.ModuleContext;
import org.universAAL.middleware.container.uAALModuleActivator;
import org.universAAL.middleware.owl.OntologyManagement;
'
//only importing valid ontologies - i.e. those that are put into the ontologyList
ontNameList.keys()-> forEach( oName:String ) {
'import 'oName'.*;\n'
}
'
public class 'ontologyName.firstToUpper()'Activator implements uAALModuleActivator {
'
ontNameList.keys()->forEach(oName:String){
' 'ontNameList.get(oName).firstToUpper()'Ontology _' ontNameList.get(oName) 'Ontology = new ' ontNameList.get(oName).firstToUpper() 'Ontology();\n'
}
'
public void start(ModuleContext mc) throws Exception {\n'
ontNameList.keys()->forEach(oName:String){
' OntologyManagement.getInstance().register(_' ontNameList.get(oName) 'Ontology);\n'
}
' }
public void stop(ModuleContext mc) throws Exception {\n'
ontNameList.keys()->forEach(oName:String){
' OntologyManagement.getInstance().unregister(_' ontNameList.get(oName) 'Ontology);\n'
}
' }
}
'
}
}
......@@ -9,9 +9,56 @@ import "OntologyUML2Java_1_2_0.m2t"
texttransformation OntologyUML2Java_1_3_0 (in uml:"http://www.eclipse.org/uml2/3.0.0/UML") extends OntologyUML2Java_1_2_0 {
uml.Package::processOntologyPackage() {
super.processOntologyPackage()
}
uml.Model::generateActivator(ontNameList:Hashtable) {
StdOut.println("Generating activator for MW 1.3.0")
// First, find package name for activator
var mainPacakageName:String = " "
self.ownedMember -> forEach( p:uml.Package ) {
mainPacakageName = p.name.substring(0, p.name.lastIndexOf("."))
//break
}
file( javaBasePath + "/" + mainPacakageName.replace("\\.", "/") + '/' + ontologyName.firstToUpper() + "Activator.java" )
'
package ' mainPacakageName ';
import org.universAAL.middleware.container.ModuleContext;
import org.universAAL.middleware.container.ModuleActivator;
import org.universAAL.middleware.owl.OntologyManagement;
'
//only importing valid ontologies - i.e. those that are put into the ontologyList
ontNameList.keys()-> forEach( oName:String ) {
'import 'oName'.*;\n'
}
'
public class 'ontologyName.firstToUpper()'Activator implements ModuleActivator {
'
ontNameList.keys()->forEach(oName:String){
' 'ontNameList.get(oName).firstToUpper()'Ontology _' ontNameList.get(oName) 'Ontology = new ' ontNameList.get(oName).firstToUpper() 'Ontology();\n'
}
'
public void start(ModuleContext mc) throws Exception {\n'
ontNameList.keys()->forEach(oName:String){
' OntologyManagement.getInstance().register(_' ontNameList.get(oName) 'Ontology);\n'
}
'
}
public void stop(ModuleContext mc) throws Exception {\n'
ontNameList.keys()->forEach(oName:String){
' OntologyManagement.getInstance().unregister(_' ontNameList.get(oName) 'Ontology);\n'
}
' }
}
'
}
}
......@@ -10,7 +10,7 @@ import "OntologyUML2Java_1_3_0.m2t"
texttransformation OntologyUML2JavaV2 (in uml:"http://www.eclipse.org/uml2/3.0.0/UML") extends OntologyUML2Java_1_3_0 {
uml.Model::generateActivator(ontNameList:Hashtable) {
StdOut.println("Activity generator for 2.0")
StdOut.println("Generating activator for MW 2.0.0")
// First, find package name for activator
var mainPacakageName:String = " "
......@@ -37,42 +37,105 @@ import org.universAAL.middleware.owl.OntologyManagement;
public class 'ontologyName.firstToUpper()'Activator implements ModuleActivator {
'//static BundleContext context = null;
'
'
'
ontNameList.keys()->forEach(oName:String){
'
'ontNameList.get(oName).firstToUpper()'Ontology _' ontNameList.get(oName) 'ontology = new ' ontNameList.get(oName).firstToUpper() 'Ontology();
'
' 'ontNameList.get(oName).firstToUpper()'Ontology _' ontNameList.get(oName) 'Ontology = new ' ontNameList.get(oName).firstToUpper() 'Ontology();\n'
}
'
public void start(ModuleContext mc) throws Exception {
'//Activator.context = context;
'
'
public void start(ModuleContext mc) throws Exception {\n'
ontNameList.keys()->forEach(oName:String){
'
OntologyManagement.getInstance().register(mc, _' ontNameList.get(oName) 'ontology);
'
' OntologyManagement.getInstance().register(mc, _' ontNameList.get(oName) 'Ontology);\n'
}
'
}
' }
public void stop(ModuleContext mc) throws Exception {
'
public void stop(ModuleContext mc) throws Exception {\n'
ontNameList.keys()->forEach(oName:String){
'
OntologyManagement.getInstance().unregister(mc, _' ontNameList.get(oName) 'ontology);
'
' OntologyManagement.getInstance().unregister(mc, _' ontNameList.get(oName) 'Ontology);\n'
}
'
}
' }
}
'
}
// generate Creator : TODO: Fix for 2.0.0
uml.Package::generateCreator(ontologyClassList:Hashtable) {
var pName:String = self.getFullPackageName()
file( javaBasePath + "/" + pName.substring(0, pName.lastIndexOf(".")).replace("\\.", "/") + '/creator/' + ontologyName.firstToUpper() + "OWLCreator.java" )
'
package ' pName.substring(0, pName.lastIndexOf(".")) '.creator;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import org.semanticweb.owlapi.apibinding.OWLManager;
import org.semanticweb.owlapi.io.RDFXMLOntologyFormat;
import org.semanticweb.owlapi.model.IRI;
import org.semanticweb.owlapi.model.OWLOntology;
import org.semanticweb.owlapi.model.OWLOntologyCreationException;
import org.semanticweb.owlapi.model.OWLOntologyFormat;
import org.semanticweb.owlapi.model.OWLOntologyManager;
import org.semanticweb.owlapi.model.OWLOntologyStorageException;
import org.universAAL.middleware.owl.OntologyManagement;
import org.universAAL.middleware.sodapop.msg.MessageContentSerializer;
import org.universAAL.serialization.turtle.TurtleParser;
import ' pName '.' ontologyName.firstToUpper() 'Ontology;
public class ' ontologyName.firstToUpper() 'OWLCreator {
private static ' ontologyName.firstToUpper() 'Ontology ontology = new ' ontologyName.firstToUpper() 'Ontology();
private static MessageContentSerializer contentSerializer = new TurtleParser();
public static void main(String[] args) {
OntologyManagement.getInstance().register(ontology);
String serializedOntology = contentSerializer.serialize(ontology);
try {
BufferedWriter out = new BufferedWriter(new FileWriter("' ontologyName.firstToUpper() '.owl", false));
out.write(serializedOntology);
out.close();
} catch (IOException e) {
System.out.println("Exception ");
}
File file = new File("' ontologyName.firstToUpper() '.owl");
OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
IRI documentIRI = IRI.create(file);
OWLOntology owlOntology;
try {
owlOntology = manager.loadOntologyFromOntologyDocument(documentIRI);
System.out.println("Loaded ontology: " + owlOntology);
OWLOntologyFormat format = manager.getOntologyFormat(owlOntology);
RDFXMLOntologyFormat rdfxmlFormat = new RDFXMLOntologyFormat();
if(format.isPrefixOWLOntologyFormat()) {
rdfxmlFormat.copyPrefixesFrom(format.asPrefixOWLOntologyFormat());
}
manager.saveOntology(owlOntology, rdfxmlFormat, IRI.create(file));
System.out.println("Saved ontology " + owlOntology + " in file ' ontologyName.firstToUpper() '.owl");
} catch (OWLOntologyCreationException e1) {
e1.printStackTrace();
} catch (OWLOntologyStorageException e) {
e.printStackTrace();
}
return;
}
}
'
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment