home *** CD-ROM | disk | FTP | other *** search
- import java.io.File;
- import java.util.Vector;
- import stardiv.conversion.Header;
- import stardiv.conversion.StubFile;
-
- class Stubs {
- private String sHxxOutput;
- private String sCxxOutput;
- private String sCxxOut;
- private boolean bDebug = false;
- private boolean bNaming = false;
- private boolean bOneToOne = false;
- private boolean bAllInOne = false;
- private String aOwnNaming = "";
- private Header aHeader;
- private StubFile aStubFile;
- private boolean bCpp = false;
- private Vector ToDo;
-
- public void start(String[] var1) {
- if (var1.length == 0) {
- System.out.println("C++ Stubs Generator");
- System.out.println();
- System.out.println("Aufruf :");
- System.out.println("java MainStubs class(es) [options]");
- System.out.println();
- System.out.println("Verfuegbare Optionen :");
- System.out.println(" -debug : Ausgabe auch auf Bildschirm");
- System.out.println(" -OneToOne : Eins zu Eins Beziehung JAVA - C++");
- System.out.println(" -AllInOne : Nur ein .cxx File");
- System.out.println(" -NamingOff : Package Naming wird ausgeschaltet");
- System.out.println(" -OwnNaming : Prefix fuer die CallParameter-Typen");
- System.out.println(" -outputhxx dir : HeaderDatei ins Directory dir");
- System.out.println(" -outputcxx dir : Cxx-Datei ins Directory dir");
- } else {
- this.sHxxOutput = "";
- this.sCxxOutput = "";
- int var2 = 0;
-
- for(this.ToDo = new Vector(); var2 < var1.length && !var1[var2].startsWith("-"); ++var2) {
- this.ToDo.addElement(var1[var2]);
- }
-
- for(int var3 = var2; var3 < var1.length; ++var3) {
- if (var1[var3].equals("-debug")) {
- this.bDebug = true;
- } else if (var1[var3].equals("-OneToOne")) {
- this.bOneToOne = true;
- } else if (var1[var3].equals("-NamingOff")) {
- this.bNaming = true;
- } else if (var1[var3].equals("-OwnNaming")) {
- if (var3 == var1.length - 1) {
- System.out.println("Fehler : Prefix fehlt ");
- System.exit(-1);
- }
-
- this.aOwnNaming = var1[var3 + 1];
- ++var3;
- } else if (var1[var3].equals("-AllInOne")) {
- this.bAllInOne = true;
- if (var3 == var1.length - 1) {
- System.out.println("Fehler : Name des Files fehlt ");
- System.exit(-1);
- }
-
- this.sCxxOut = var1[var3 + 1];
- ++var3;
- } else if (var1[var3].equals("-outputhxx")) {
- if (var3 == var1.length - 1) {
- System.out.println("Fehler : Name des Directories fehlt ");
- System.exit(-1);
- }
-
- this.sHxxOutput = var1[var3 + 1];
- if (!(new File(this.sHxxOutput)).isDirectory()) {
- System.out.println(" Directory existiert nicht !");
- System.exit(-1);
- }
-
- ++var3;
- } else if (var1[var3].equals("-outputcxx")) {
- if (var3 == var1.length - 1) {
- System.out.println("Fehler : Name des Directories fehlt ");
- System.exit(-1);
- }
-
- this.sCxxOutput = var1[var3 + 1];
- if (!(new File(this.sCxxOutput)).isDirectory()) {
- System.out.println(" Directory existiert nicht !");
- System.exit(-1);
- }
-
- ++var3;
- } else {
- System.err.println("Unknown Arguments !");
- System.exit(-1);
- }
- }
-
- this.aStubFile = new StubFile();
- this.aHeader = new Header();
- this.GenHeader();
- this.GenStubs();
- }
- }
-
- private void GenStubs() {
- this.aStubFile.start(this.ToDo, this.bDebug, this.bOneToOne, this.bAllInOne, this.sCxxOutput, this.sCxxOut, this.bCpp, this.bNaming, this.aOwnNaming);
- }
-
- private void GenHeader() {
- for(Vector var1 = (Vector)this.ToDo.clone(); var1.size() > 0; var1.removeElementAt(0)) {
- this.aHeader.start((String)var1.elementAt(0), this.bDebug, this.sHxxOutput);
- if (this.aHeader.hasPointer()) {
- this.bCpp = true;
- }
- }
-
- }
- }
-