1 package org.simantics.graph.db;
\r
3 import java.util.HashSet;
\r
5 import org.simantics.db.Session;
\r
6 import org.simantics.db.WriteOnlyGraph;
\r
7 import org.simantics.db.common.request.WriteOnlyRequest;
\r
8 import org.simantics.db.exception.DatabaseException;
\r
9 import org.simantics.db.service.InitSupport;
\r
10 import org.simantics.db.service.SerialisationSupport;
\r
11 import org.simantics.graph.representation.TransferableGraph1;
\r
12 import org.simantics.scl.reflection.OntologyVersions;
\r
14 public class CoreInitialization {
\r
16 static final public String LAYER0 = OntologyVersions.getInstance().currentVersion("http://www.simantics.org/Layer0-0.0/");
\r
17 static final HashSet<InitSupport.Builtin> BUILTINS =
\r
18 new HashSet<InitSupport.Builtin>();
\r
19 static public HashSet<InitSupport.Builtin> getBuiltins() {
\r
22 private static int builtinId = 0;
\r
23 private static void addBuiltin(String uri) {
\r
24 BUILTINS.add(new InitSupport.Builtin(uri, ++builtinId));
\r
26 private static void addLayer0Builtin(String name) {
\r
27 addBuiltin(LAYER0 + name);
\r
31 addLayer0Builtin("InstanceOf");
\r
32 addLayer0Builtin("Inherits");
\r
33 addLayer0Builtin("SubrelationOf");
\r
34 addLayer0Builtin("InverseOf");
\r
36 addLayer0Builtin("HasName");
\r
37 addLayer0Builtin("NameOf");
\r
39 addLayer0Builtin("ConsistsOf");
\r
40 addLayer0Builtin("PartOf");
\r
42 addLayer0Builtin("String");
\r
43 addLayer0Builtin("Library");
\r
44 addLayer0Builtin("FunctionalRelation");
\r
45 addLayer0Builtin("SuperrelationOf");
\r
46 addLayer0Builtin("Asserts");
\r
47 addLayer0Builtin("HasInstance");
\r
48 addLayer0Builtin("HasPredicate");
\r
49 addLayer0Builtin("HasPredicateInverse");
\r
50 addLayer0Builtin("HasObject");
\r
52 addBuiltin("http://Projects");
\r
53 addBuiltin("http:/");
\r
56 public static void initializeBuiltins(Session session) throws DatabaseException {
\r
57 session.getService(InitSupport.class).addBuiltins(BUILTINS);
\r
60 public static long[] initializeGraph(final Session session, TransferableGraph1 tg) throws DatabaseException {
\r
61 final TransferableGraphImportProcess process = new TransferableGraphImportProcess(tg,
\r
62 new ImportAdvisor());
\r
63 session.syncRequest(new WriteOnlyRequest() {
\r
65 public void perform(WriteOnlyGraph graph) throws DatabaseException {
\r
66 graph.markUndoPoint();
\r
69 // session.getService(XSupport.class).setImmutable(session.getRootLibrary(), true);
\r
71 process.initialPrepare(graph);
\r
72 process.write(graph);
\r
73 graph.clearUndoList(this);
\r
77 return process.getResourceIds(
\r
78 session.getService(SerialisationSupport.class)
\r