//USMarcToJava // Basic USMarc translation support for Java // This script takes USMarc.py as an input, and generates // USMarc.java with similar fucntionality. import java.io.*; import java.util.Hashtable; public class USMarcToJava { private static File filein; private static File fileout; private static FileInputStream fin; private static FileOutputStream fout; private static DataInputStream hin; private static DataOutputStream hout; private static PrintStream hhout; private static String status; private static Hashtable kUSMarc = new Hashtable(); public USMarcToJava () { status = "About to begin"; } private static void WriteHeadOutFile () { hhout.println("// USMarc.java"); hhout.println("import java.util.Hashtable;"); hhout.println(""); hhout.println("// Basic USMarc translation support for Java"); hhout.println("// Automatically generated by usmartojava.java from USMarc.py file"); hhout.println(""); hhout.println("public class USMarc {"); hhout.println(" private Hashtable kUSMarc = new Hashtable();"); hhout.println(" private Hashtable USMarc = new Hashtable();"); hhout.println(" private Hashtable gEnglish2USMarc = new Hashtable();"); hhout.println(""); hhout.println(" public USMarc() {"); hhout.println(""); return; } private static void WriteTailOutFile () { hhout.println(" return;"); hhout.println(" }"); hhout.println(""); hhout.println(" public String USMarc2English (String pField) {"); hhout.println(" return (((String[])USMarc.get(pField))[0]);"); hhout.println(" }"); hhout.println(""); hhout.println(" public String USMarc2LongEnglish (String pField) {"); hhout.println(" return (((String[])USMarc.get(pField))[1]);"); hhout.println(" }"); hhout.println(""); hhout.println(" public String English2USMarc (String pField) {"); hhout.println(" pField = pField.toLowerCase();"); hhout.println(" return ((String)gEnglish2USMarc.get(pField));"); hhout.println(" }"); hhout.println(" "); hhout.println(" public String[] USMarc2English (String[] pFields) {"); hhout.println(" String[] aux = new String[pFields.length];"); hhout.println(" "); hhout.println(" for(int i=0;i 0 ) { debug = 1; } else { debug = 0; } filein = new File("USMarc.py"); fileout = new File("USMarc.java"); if ( !filein.exists() || !filein.canRead() ) { System.out.println("Can't read USMarc.py"); return; } status = "About to begin"; try { fin = new FileInputStream(filein); fout = new FileOutputStream(fileout); hin = new DataInputStream(fin); hout = new DataOutputStream(fout); hhout = new PrintStream((OutputStream)hout, true); WriteHeadOutFile(); String input = hin.readLine(); String output = ""; while ((input != null) && !(status.equals("end")) ) { if ( debug == 1) { System.out.println(input); System.out.println("STATUS = " + status); } output = GenerateOutput(input); if ( !output.equals("nothing") ) hhout.println(output); input = hin.readLine(); } System.out.println("End of File"); WriteTailOutFile(); hhout.flush(); fin.close(); fout.close(); } catch (Exception e) { System.out.println("Exception: " + e); } } }