From d53a8d6bb9565e6b5e6c66ef8756cb13d8d51833 Mon Sep 17 00:00:00 2001 From: josch Date: Mon, 14 Feb 2011 17:52:24 +0100 Subject: [PATCH] IT WORKS SUCKERS!!!!!!!!oneeleven --- .../informatik/hets/model/Actuals.java | 4 ++ .../informatik/hets/model/Basicspec.java | 20 ++++++++++ .../informatik/hets/model/HetFile.java | 39 +++++++++++++++++++ .../informatik/hets/model/SpecDefn.java | 20 ++++++++++ .../hets/protege/CGIImportHetsAction.java | 2 + 5 files changed, 85 insertions(+) diff --git a/src/de/unibremen/informatik/hets/model/Actuals.java b/src/de/unibremen/informatik/hets/model/Actuals.java index e0a04f1..25723b2 100644 --- a/src/de/unibremen/informatik/hets/model/Actuals.java +++ b/src/de/unibremen/informatik/hets/model/Actuals.java @@ -5,6 +5,10 @@ public class Actuals extends Spec { super(cont, anno); } + public String getName() { + return content; + } + public String toString() { return content + "\n"; } diff --git a/src/de/unibremen/informatik/hets/model/Basicspec.java b/src/de/unibremen/informatik/hets/model/Basicspec.java index 62e7033..3f2a3f4 100644 --- a/src/de/unibremen/informatik/hets/model/Basicspec.java +++ b/src/de/unibremen/informatik/hets/model/Basicspec.java @@ -1,7 +1,27 @@ package de.unibremen.informatik.hets.model; +import de.unibremen.informatik.owl.OWLUtils; + +import org.semanticweb.owlapi.model.OWLOntology; + +import org.protege.editor.owl.model.OWLModelManager; + public class Basicspec extends Spec { + OWLOntology ontology; + public Basicspec(String cont, String anno) { super(cont, anno); } + + public OWLOntology getOntology() { + return ontology; + } + + public void displayOntology(OWLModelManager owlmodelmanager, String iri) { + ontology = OWLUtils.displayOntology(owlmodelmanager, content, iri); + } + + public void displayOntology(OWLModelManager owlmodelmanager, String iri, OWLOntology parent_ont, String parent_iri) { + ontology = OWLUtils.displayOntology(owlmodelmanager, content, parent_ont, iri, parent_iri); + } } diff --git a/src/de/unibremen/informatik/hets/model/HetFile.java b/src/de/unibremen/informatik/hets/model/HetFile.java index ead64ab..a648f5a 100644 --- a/src/de/unibremen/informatik/hets/model/HetFile.java +++ b/src/de/unibremen/informatik/hets/model/HetFile.java @@ -1,6 +1,11 @@ package de.unibremen.informatik.hets.model; import java.util.ArrayList; +import java.util.Iterator; + +import org.semanticweb.owlapi.model.OWLOntology; + +import org.protege.editor.owl.model.OWLModelManager; public class HetFile { private String libname; @@ -39,4 +44,38 @@ public class HetFile { return builder.toString(); } + + public OWLOntology getOntologyByName(String name) { + for (SpecDefn specdefn : specdefns) { + if (specdefn.getLogic().equals("OWL") && specdefn.getName().equals(name)) { + return specdefn.getOntology(); + } + } + return null; + } + + public void displayOntologies(OWLModelManager manager) { + // TODO: this yet only supports basicspec and simple extension blocks + + for (SpecDefn specdefn : specdefns) { + if (specdefn.getLogic().equals("OWL")) { + Iterator it = specdefn.getIterator(); + + String parent_iri = ""; + + while (it.hasNext()) { + Spec spec = it.next(); + if (spec instanceof Basicspec) { + if (parent_iri != "") { + ((Basicspec)spec).displayOntology(manager, specdefn.getName(), getOntologyByName(parent_iri), parent_iri); + } else { + ((Basicspec)spec).displayOntology(manager, specdefn.getName()); + } + } else if (spec instanceof Actuals) { + parent_iri = ((Actuals)spec).getName(); + } + } + } + } + } } diff --git a/src/de/unibremen/informatik/hets/model/SpecDefn.java b/src/de/unibremen/informatik/hets/model/SpecDefn.java index 7c88cde..2847644 100644 --- a/src/de/unibremen/informatik/hets/model/SpecDefn.java +++ b/src/de/unibremen/informatik/hets/model/SpecDefn.java @@ -3,6 +3,8 @@ package de.unibremen.informatik.hets.model; import java.util.ArrayList; import java.util.Iterator; +import org.semanticweb.owlapi.model.OWLOntology; + public class SpecDefn { private ArrayList specs; private String name; @@ -24,6 +26,24 @@ public class SpecDefn { return logic; } + public String getName() { + return name; + } + + public Iterator getIterator() { + return specs.iterator(); + } + + // just return the first Basicspec for now + public OWLOntology getOntology() { + for (Spec spec : specs) { + if (spec instanceof Basicspec) { + return ((Basicspec)spec).getOntology(); + } + } + return null; + } + public String toString() { StringBuilder builder = new StringBuilder(); diff --git a/src/de/unibremen/informatik/hets/protege/CGIImportHetsAction.java b/src/de/unibremen/informatik/hets/protege/CGIImportHetsAction.java index e8a9abf..51df329 100644 --- a/src/de/unibremen/informatik/hets/protege/CGIImportHetsAction.java +++ b/src/de/unibremen/informatik/hets/protege/CGIImportHetsAction.java @@ -84,5 +84,7 @@ public class CGIImportHetsAction extends ProtegeOWLAction { } System.out.println(hetfile.toString()); + + hetfile.displayOntologies(this.getOWLModelManager()); } }