]> gerrit.simantics Code Review - simantics/interop.git/blob - org.simantics.xml.sax/src/org/simantics/xml/sax/SCLCombinator.java
Generate SCL bindings for multi-version ontology references classes.
[simantics/interop.git] / org.simantics.xml.sax / src / org / simantics / xml / sax / SCLCombinator.java
1 package org.simantics.xml.sax;
2
3 import java.io.BufferedWriter;
4 import java.io.File;
5 import java.io.FileWriter;
6 import java.io.IOException;
7 import java.io.PrintWriter;
8
9 /**
10  * Creates a SCL module for Java combination class.
11  * 
12  * @see org.simantics.xml.sax.OntologyCombinator
13  * 
14  * @author luukkainen
15  *
16  */
17 public class SCLCombinator extends OntologyCombinator{
18         
19         @Override
20         public void combine(File[] inputFiles, File outputFile) throws IOException {
21                 super.process(inputFiles);
22                 
23                 PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(outputFile)));
24                 String className = outputFile.getName();
25                 int dp = className.indexOf(".");
26                 if (dp > 0)
27                         className = className.substring(0,dp);
28                 
29                 try {
30                         writer.println("import \"Simantics/DB\"");
31                         writer.println();
32                         writer.println("importJava \"" + packageLine.substring(packageLineStart.length()+1,packageLine.length()-1) + "." + className + "\" where");
33                         writer.println("  data " + className);
34                         writer.println("  ");
35                         writer.println("  @JavaName getOntology");
36                         writer.println("  getOntology :: Resource -> <ReadGraph> Maybe " + className);
37                         writer.println("  ");
38                         for (String s : sortedResourcses) {
39                     writer.println("  @JavaName "+s);
40                     writer.println("  "+s+" :: " + className + " -> Maybe Resource");
41                     writer.println("  ");
42                         }
43                         
44                 }       finally {
45                         writer.close();
46                 }
47         }
48
49 }