package org.simantics.xml.sax; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; /** * Creates a SCL module for Java combination class. * * @see org.simantics.xml.sax.OntologyCombinator * * @author luukkainen * */ public class SCLCombinator extends OntologyCombinator{ @Override public void combine(File[] inputFiles, File outputFile) throws IOException { super.process(inputFiles); PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(outputFile))); String className = outputFile.getName(); int dp = className.indexOf("."); if (dp > 0) className = className.substring(0,dp); try { writer.println("import \"Simantics/DB\""); writer.println(); writer.println("importJava \"" + packageLine.substring(packageLineStart.length()+1,packageLine.length()-1) + "." + className + "\" where"); writer.println(" data " + className); writer.println(" "); writer.println(" @JavaName getOntology"); writer.println(" getOntology :: Resource -> Maybe " + className); writer.println(" "); for (String s : sortedResourcses) { writer.println(" @JavaName "+s); writer.println(" "+s+" :: " + className + " -> Maybe Resource"); writer.println(" "); } } finally { writer.close(); } } }