home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 August / PCO0897.ISO / filesbbs / os2 / fp1os2.arj / OS2 / DATA / 49 / C / 0 / F_26836 / Stubs.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-05-15  |  3.4 KB  |  121 lines

  1. import java.io.File;
  2. import java.util.Vector;
  3. import stardiv.conversion.Header;
  4. import stardiv.conversion.StubFile;
  5.  
  6. class Stubs {
  7.    private String sHxxOutput;
  8.    private String sCxxOutput;
  9.    private String sCxxOut;
  10.    private boolean bDebug = false;
  11.    private boolean bNaming = false;
  12.    private boolean bOneToOne = false;
  13.    private boolean bAllInOne = false;
  14.    private String aOwnNaming = "";
  15.    private Header aHeader;
  16.    private StubFile aStubFile;
  17.    private boolean bCpp = false;
  18.    private Vector ToDo;
  19.  
  20.    public void start(String[] var1) {
  21.       if (var1.length == 0) {
  22.          System.out.println("C++ Stubs Generator");
  23.          System.out.println();
  24.          System.out.println("Aufruf :");
  25.          System.out.println("java MainStubs class(es) [options]");
  26.          System.out.println();
  27.          System.out.println("Verfuegbare Optionen :");
  28.          System.out.println(" -debug         : Ausgabe auch auf Bildschirm");
  29.          System.out.println(" -OneToOne      : Eins zu Eins Beziehung JAVA - C++");
  30.          System.out.println(" -AllInOne      : Nur ein .cxx File");
  31.          System.out.println(" -NamingOff     : Package Naming wird ausgeschaltet");
  32.          System.out.println(" -OwnNaming     : Prefix fuer die CallParameter-Typen");
  33.          System.out.println(" -outputhxx dir : HeaderDatei ins Directory dir");
  34.          System.out.println(" -outputcxx dir : Cxx-Datei ins Directory dir");
  35.       } else {
  36.          this.sHxxOutput = "";
  37.          this.sCxxOutput = "";
  38.          int var2 = 0;
  39.  
  40.          for(this.ToDo = new Vector(); var2 < var1.length && !var1[var2].startsWith("-"); ++var2) {
  41.             this.ToDo.addElement(var1[var2]);
  42.          }
  43.  
  44.          for(int var3 = var2; var3 < var1.length; ++var3) {
  45.             if (var1[var3].equals("-debug")) {
  46.                this.bDebug = true;
  47.             } else if (var1[var3].equals("-OneToOne")) {
  48.                this.bOneToOne = true;
  49.             } else if (var1[var3].equals("-NamingOff")) {
  50.                this.bNaming = true;
  51.             } else if (var1[var3].equals("-OwnNaming")) {
  52.                if (var3 == var1.length - 1) {
  53.                   System.out.println("Fehler : Prefix fehlt ");
  54.                   System.exit(-1);
  55.                }
  56.  
  57.                this.aOwnNaming = var1[var3 + 1];
  58.                ++var3;
  59.             } else if (var1[var3].equals("-AllInOne")) {
  60.                this.bAllInOne = true;
  61.                if (var3 == var1.length - 1) {
  62.                   System.out.println("Fehler : Name des Files fehlt ");
  63.                   System.exit(-1);
  64.                }
  65.  
  66.                this.sCxxOut = var1[var3 + 1];
  67.                ++var3;
  68.             } else if (var1[var3].equals("-outputhxx")) {
  69.                if (var3 == var1.length - 1) {
  70.                   System.out.println("Fehler : Name des Directories fehlt ");
  71.                   System.exit(-1);
  72.                }
  73.  
  74.                this.sHxxOutput = var1[var3 + 1];
  75.                if (!(new File(this.sHxxOutput)).isDirectory()) {
  76.                   System.out.println(" Directory existiert nicht !");
  77.                   System.exit(-1);
  78.                }
  79.  
  80.                ++var3;
  81.             } else if (var1[var3].equals("-outputcxx")) {
  82.                if (var3 == var1.length - 1) {
  83.                   System.out.println("Fehler : Name des Directories fehlt ");
  84.                   System.exit(-1);
  85.                }
  86.  
  87.                this.sCxxOutput = var1[var3 + 1];
  88.                if (!(new File(this.sCxxOutput)).isDirectory()) {
  89.                   System.out.println(" Directory existiert nicht !");
  90.                   System.exit(-1);
  91.                }
  92.  
  93.                ++var3;
  94.             } else {
  95.                System.err.println("Unknown Arguments !");
  96.                System.exit(-1);
  97.             }
  98.          }
  99.  
  100.          this.aStubFile = new StubFile();
  101.          this.aHeader = new Header();
  102.          this.GenHeader();
  103.          this.GenStubs();
  104.       }
  105.    }
  106.  
  107.    private void GenStubs() {
  108.       this.aStubFile.start(this.ToDo, this.bDebug, this.bOneToOne, this.bAllInOne, this.sCxxOutput, this.sCxxOut, this.bCpp, this.bNaming, this.aOwnNaming);
  109.    }
  110.  
  111.    private void GenHeader() {
  112.       for(Vector var1 = (Vector)this.ToDo.clone(); var1.size() > 0; var1.removeElementAt(0)) {
  113.          this.aHeader.start((String)var1.elementAt(0), this.bDebug, this.sHxxOutput);
  114.          if (this.aHeader.hasPointer()) {
  115.             this.bCpp = true;
  116.          }
  117.       }
  118.  
  119.    }
  120. }
  121.