diff --git a/transformations/org.universaal.tools.transformationcommand/transformations/OntologyUML2Java_1_1_0.m2t b/transformations/org.universaal.tools.transformationcommand/transformations/OntologyUML2Java_1_1_0.m2t index 62f26acec1c1367b2fc40fd6b5907f75b1f8cdec..dc9b26d70b3bf5968b10a521514d1e345d770858 100644 --- a/transformations/org.universaal.tools.transformationcommand/transformations/OntologyUML2Java_1_1_0.m2t +++ b/transformations/org.universaal.tools.transformationcommand/transformations/OntologyUML2Java_1_1_0.m2t @@ -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. diff --git a/transformations/org.universaal.tools.transformationcommand/transformations/OntologyUML2Java_1_2_0.m2t b/transformations/org.universaal.tools.transformationcommand/transformations/OntologyUML2Java_1_2_0.m2t index c5fb8f7fe61a10575439eb05867ab073cdf64264..075cf116f3c6328a9177d1e4e62d0def558f5f38 100644 --- a/transformations/org.universaal.tools.transformationcommand/transformations/OntologyUML2Java_1_2_0.m2t +++ b/transformations/org.universaal.tools.transformationcommand/transformations/OntologyUML2Java_1_2_0.m2t @@ -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' + } +' } +} +' + + } } diff --git a/transformations/org.universaal.tools.transformationcommand/transformations/OntologyUML2Java_1_3_0.m2t b/transformations/org.universaal.tools.transformationcommand/transformations/OntologyUML2Java_1_3_0.m2t index c2e2da1c0984899ca4c2b9081a3672376091ae23..542ccae27335f59a6d6892d2b511407be23f680e 100644 --- a/transformations/org.universaal.tools.transformationcommand/transformations/OntologyUML2Java_1_3_0.m2t +++ b/transformations/org.universaal.tools.transformationcommand/transformations/OntologyUML2Java_1_3_0.m2t @@ -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' + } +' } +} +' + + } } diff --git a/transformations/org.universaal.tools.transformationcommand/transformations/OntologyUML2Java_2_0_0.m2t b/transformations/org.universaal.tools.transformationcommand/transformations/OntologyUML2Java_2_0_0.m2t index fcb3fd92ddf79f0f47ecda7781d88c59e7912a83..18fe2cc5dae4439e0b5119982db3e2c7147badde 100644 --- a/transformations/org.universaal.tools.transformationcommand/transformations/OntologyUML2Java_2_0_0.m2t +++ b/transformations/org.universaal.tools.transformationcommand/transformations/OntologyUML2Java_2_0_0.m2t @@ -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; + } + +} + +' + } + + }