package rmi.rmiSynth.lex;
import graphics.raytracer.DoImage;
import graphics.raytracer.Main;
import rmi.rmiSynth.LocalClient;
import java.awt.*;
public class Generator {
private boolean onlyPublic = true; private boolean withMain = false; private boolean noMain = true; private boolean withDelegate = true; private boolean noDelegate = false; private String s; private FileSaver fs = new FileSaver();
public static void test1() {
String serverClassName = "DoImageServer"; String serverInterfaceName = "DoImageInterface"; String exampleClientName = "DoImageClient";
LocalClient sequentialClass =
new LocalClient();
DoImage serverClass =
new DoImage(new Dimension());
synthesizeSource(
serverInterfaceName,
serverClass,
serverClassName,
exampleClientName,
sequentialClass);
}
public static void main(String args[]) {
String serverClassName = "DoImageServer"; String serverInterfaceName = "DoImageInterface"; String exampleClientName = "DoImageClient";
DoImage serverClass = new DoImage(new Dimension(200, 200));
Main clientClass = new Main();
synthesizeSource(
serverInterfaceName,
serverClass,
serverClassName,
exampleClientName,
clientClass);
}
private static void synthesizeSource(String serverInterfaceName,
Object serverClass,
String serverClassName,
String exampleClientName,
Object sequentialClass) {
Generator generator = new Generator();
generator.createInterface(serverInterfaceName, serverClass);
generator.createServer(serverInterfaceName, serverClassName, serverClass);
generator.createClient(
serverInterfaceName,
serverClassName,
exampleClientName,
sequentialClass);
}
public void createInterface(String newServerInter, Object sequentialClass) {
boolean isInterface = true;
LexBase lb = new LexBase(isInterface, newServerInter, sequentialClass);
Transform.toRMIInterface(lb);
s = lb.toString(onlyPublic, withMain, withDelegate);
System.out.println(s);
fs.createFile(s, newServerInter);
}
public void createServer(
String newServerInter,
String newServerClass,
Object sequentialClass) {
boolean isClass = true;
LexBase lb = new LexBase(isClass, newServerClass, sequentialClass);
Transform.toRMIServer(lb, newServerInter, newServerClass);
s = lb.toString(onlyPublic, withMain, withDelegate);
System.out.println(s);
fs.createFile(s, newServerClass);
}
public void createClient(
String newServerInter,
String newServerClass,
String newClientClass,
Object sequentialClass) {
boolean isClass = true;
LexBase lb = new LexBase(isClass, newClientClass, sequentialClass);
Transform.toRMIClient(lb, newServerInter, newServerClass, newClientClass, "\"localhost\"");
s = lb.toString(onlyPublic, noMain, noDelegate);
System.out.println(s);
fs.createFile(s, newClientClass);
}
}