X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics%2Fsrc%2Forg%2Fsimantics%2FOntologyImportAdvisor.java;h=aa528a652204234ec7358bf57bfaa0b9a03dedd0;hp=37d20c9cfd6e62bf734fd55fad426340bd8b56fb;hb=refs%2Fchanges%2F38%2F238%2F2;hpb=24e2b34260f219f0d1644ca7a138894980e25b14 diff --git a/bundles/org.simantics/src/org/simantics/OntologyImportAdvisor.java b/bundles/org.simantics/src/org/simantics/OntologyImportAdvisor.java index 37d20c9cf..aa528a652 100644 --- a/bundles/org.simantics/src/org/simantics/OntologyImportAdvisor.java +++ b/bundles/org.simantics/src/org/simantics/OntologyImportAdvisor.java @@ -1,132 +1,132 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Association for Decentralized Information Management - * in Industry THTH ry. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * VTT Technical Research Centre of Finland - initial API and implementation - *******************************************************************************/ -package org.simantics; - -import org.simantics.db.ReadGraph; -import org.simantics.db.Resource; -import org.simantics.db.WriteOnlyGraph; -import org.simantics.db.common.WriteBindings; -import org.simantics.db.exception.DatabaseException; -import org.simantics.db.exception.RuntimeDatabaseException; -import org.simantics.db.service.SerialisationSupport; -import org.simantics.graph.db.AbstractImportAdvisor2; -import org.simantics.graph.db.TransferableGraphImporter; -import org.simantics.graph.representation.Root; -import org.simantics.layer0.Layer0; -import org.simantics.project.management.DatabaseManagement; -import org.simantics.project.management.GraphBundle; - -public class OntologyImportAdvisor extends AbstractImportAdvisor2 { - - final private GraphBundle tg; - final private DatabaseManagement mgmt; - final private String rootName; - private Resource ontology; - private Resource ontologyName; - - public OntologyImportAdvisor(GraphBundle tg, DatabaseManagement mgmt) { - this.tg = tg; - this.mgmt = mgmt; - if(tg.getName().contains("@")) { - rootName = tg.getName().substring(tg.getName().lastIndexOf("/")+1); - } else { - rootName = tg.getName().substring(tg.getName().lastIndexOf("/")+1) + "-" + tg.getMajor() + "." + tg.getMinor(); - } - } - - @Override - public Resource getTarget() { - return null; - } - - @Override - public Resource analyzeRoot(ReadGraph graph, Root root) throws DatabaseException { - return null; - } - - @Override - public Resource createRoot(WriteOnlyGraph graph, Root root) throws DatabaseException { - return createRoot(graph, root, null); - } - - @Override - public Resource createRoot(WriteOnlyGraph graph, Root root, Resource resource) throws DatabaseException { - if(resource == null) resource = graph.newResource(); - addRootInfo(root, root.name, resource); - return resource; - } - - @Override - public void beforeWrite(WriteOnlyGraph graph, TransferableGraphImporter process) throws DatabaseException { - ontology = graph.newResource(graph.getRootLibrary()); - ontologyName = graph.newResource(graph.getRootLibrary()); - graph.newClusterSet(ontology); - graph.setClusterSet4NewResource(ontology); - } - - @Override - public void afterWrite(WriteOnlyGraph graph, TransferableGraphImporter process) throws DatabaseException { - - try { - long[] ids = process.getResourceIds(graph.getService(SerialisationSupport.class)); - tg.setResourceArray(ids); - mgmt.createGraphBundle(graph, tg); - //graph.flushCluster(); - } catch (DatabaseException e) { - throw new RuntimeDatabaseException(e); - } - - } - - @Override - public boolean allowImmutableModifications() { - return true; - } - - @Override - public Resource createChild(WriteOnlyGraph graph, TransferableGraphImporter process, Resource parent, - String name) throws DatabaseException { - if(rootName.equals(name)) { - - Layer0 L0 = graph.getService(Layer0.class); - graph.claim(ontologyName, L0.InstanceOf, null, L0.String); - graph.claimValue(ontologyName, name, WriteBindings.STRING); - graph.claim(ontology, L0.HasName, L0.NameOf, ontologyName); - return ontology; - - } else { - - return process.createChild(graph, parent, null, name); - - } - } - - @Override - public Resource createChild(WriteOnlyGraph graph, TransferableGraphImporter process, Resource parent, Resource child, - String name) throws DatabaseException { - - if(rootName.equals(name)) { - - Layer0 L0 = graph.getService(Layer0.class); - graph.claim(ontologyName, L0.InstanceOf, null, L0.String); - graph.claimValue(ontologyName, name, WriteBindings.STRING); - graph.claim(ontology, L0.HasName, L0.NameOf, ontologyName); - return ontology; - - } else { - - return process.createChild(graph, parent, null, name); - - } - } - -} +/******************************************************************************* + * Copyright (c) 2007, 2010 Association for Decentralized Information Management + * in Industry THTH ry. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * VTT Technical Research Centre of Finland - initial API and implementation + *******************************************************************************/ +package org.simantics; + +import org.simantics.db.ReadGraph; +import org.simantics.db.Resource; +import org.simantics.db.WriteOnlyGraph; +import org.simantics.db.common.WriteBindings; +import org.simantics.db.exception.DatabaseException; +import org.simantics.db.exception.RuntimeDatabaseException; +import org.simantics.db.service.SerialisationSupport; +import org.simantics.graph.db.AbstractImportAdvisor2; +import org.simantics.graph.db.TransferableGraphImporter; +import org.simantics.graph.representation.Root; +import org.simantics.layer0.Layer0; +import org.simantics.project.management.DatabaseManagement; +import org.simantics.project.management.GraphBundle; + +public class OntologyImportAdvisor extends AbstractImportAdvisor2 { + + final private GraphBundle tg; + final private DatabaseManagement mgmt; + final private String rootName; + private Resource ontology; + private Resource ontologyName; + + public OntologyImportAdvisor(GraphBundle tg, DatabaseManagement mgmt) { + this.tg = tg; + this.mgmt = mgmt; + if(tg.getName().contains("@")) { + rootName = tg.getName().substring(tg.getName().lastIndexOf("/")+1); + } else { + rootName = tg.getName().substring(tg.getName().lastIndexOf("/")+1) + "-" + tg.getMajor() + "." + tg.getMinor(); + } + } + + @Override + public Resource getTarget() { + return null; + } + + @Override + public Resource analyzeRoot(ReadGraph graph, Root root) throws DatabaseException { + return null; + } + + @Override + public Resource createRoot(WriteOnlyGraph graph, Root root) throws DatabaseException { + return createRoot(graph, root, null); + } + + @Override + public Resource createRoot(WriteOnlyGraph graph, Root root, Resource resource) throws DatabaseException { + if(resource == null) resource = graph.newResource(); + addRootInfo(root, root.name, resource); + return resource; + } + + @Override + public void beforeWrite(WriteOnlyGraph graph, TransferableGraphImporter process) throws DatabaseException { + ontology = graph.newResource(graph.getRootLibrary()); + ontologyName = graph.newResource(graph.getRootLibrary()); + graph.newClusterSet(ontology); + graph.setClusterSet4NewResource(ontology); + } + + @Override + public void afterWrite(WriteOnlyGraph graph, TransferableGraphImporter process) throws DatabaseException { + + try { + long[] ids = process.getResourceIds(graph.getService(SerialisationSupport.class)); + tg.setResourceArray(ids); + mgmt.createGraphBundle(graph, tg); + //graph.flushCluster(); + } catch (DatabaseException e) { + throw new RuntimeDatabaseException(e); + } + + } + + @Override + public boolean allowImmutableModifications() { + return true; + } + + @Override + public Resource createChild(WriteOnlyGraph graph, TransferableGraphImporter process, Resource parent, + String name) throws DatabaseException { + if(rootName.equals(name)) { + + Layer0 L0 = graph.getService(Layer0.class); + graph.claim(ontologyName, L0.InstanceOf, null, L0.String); + graph.claimValue(ontologyName, name, WriteBindings.STRING); + graph.claim(ontology, L0.HasName, L0.NameOf, ontologyName); + return ontology; + + } else { + + return process.createChild(graph, parent, null, name); + + } + } + + @Override + public Resource createChild(WriteOnlyGraph graph, TransferableGraphImporter process, Resource parent, Resource child, + String name) throws DatabaseException { + + if(rootName.equals(name)) { + + Layer0 L0 = graph.getService(Layer0.class); + graph.claim(ontologyName, L0.InstanceOf, null, L0.String); + graph.claimValue(ontologyName, name, WriteBindings.STRING); + graph.claim(ontology, L0.HasName, L0.NameOf, ontologyName); + return ontology; + + } else { + + return process.createChild(graph, parent, null, name); + + } + } + +}