1 package org.simantics.r;
\r
3 import java.io.BufferedReader;
\r
4 import java.io.IOException;
\r
5 import java.nio.file.Files;
\r
6 import java.nio.file.Path;
\r
8 import org.simantics.Simantics;
\r
9 import org.simantics.db.Resource;
\r
10 import org.simantics.db.WriteGraph;
\r
11 import org.simantics.db.common.request.WriteResultRequest;
\r
12 import org.simantics.db.exception.DatabaseException;
\r
13 import org.simantics.db.layer0.request.Configuration;
\r
14 import org.simantics.modeling.ModelingUtils;
\r
16 public class RModelUtils {
\r
18 private static Resource createModel(WriteGraph graph, Resource type, Resource target, String name, String sclMainContents) throws DatabaseException {
\r
19 Resource model = ModelingUtils.createModel(graph, type, target, name);
\r
20 @SuppressWarnings("unused")
\r
21 Resource conf = graph.syncRequest(new Configuration(model));
\r
23 ModelingUtils.addSCLMainToModel(graph, model, "SCLMain", sclMainContents);
\r
24 ModelingUtils.createLocalLibrary(graph, model, "Library");
\r
29 public static Resource createRModel(final Resource target, final Path file) {
\r
30 StringBuilder sb = new StringBuilder();
\r
31 try (BufferedReader reader = Files.newBufferedReader(file)) {
\r
32 String newLine = null;
\r
33 while ((newLine = reader.readLine()) != null) {
\r
34 sb.append(newLine).append("\n");
\r
36 } catch (IOException e) {
\r
37 e.printStackTrace();
\r
39 final String sclMainContents = sb.toString();
\r
40 if (!sclMainContents.isEmpty()) {
\r
42 return Simantics.sync(new WriteResultRequest<Resource>() {
\r
45 public Resource perform(WriteGraph graph) throws DatabaseException {
\r
46 RResource R = RResource.getInstance(graph);
\r
47 String fileName = file.getFileName().toString();
\r
48 String[] parts = fileName.split("/");
\r
49 String modelName = parts[parts.length - 1];
\r
51 Resource model = createModel(graph, R.Model, target, modelName, sclMainContents);
\r
55 } catch (DatabaseException e) {
\r
56 e.printStackTrace();
\r