JA Java2HTML Regent Reconstruction (3)
First focus on this:
Public static void main (string args [])
{
.................
Java2html = new java2html ();
O01 = New O01 (ARGS);
.................
}
The parameter jumps to O01. So we continue, no way, reverse engineering needs patience.
// Source File Name: O01.JAVA
Package com.java2html;
Import java.io.file;
Import Java.io.printStream;
Import java.util.vector;
// Reference Classes of Package Com.java2HTML:
// BadoptionException, Java2HTML, Javadoc, O07
Public class O01
{
Private string o02 [];
Private boolean o03 [];
O01 (String as [])
{
O02 = as;
O03 = new bolean [as.length];
}
Boolean O04 (Java2HTML Java2HTML)
Throws BadOptionException
{
IF (o02.Length == 0 || O06 (new string [] {
"Help", "h", "?", "/?"
}))
{
System.out.println (O07.O08);
Return False;
}
String as [] = o010 (new string "
"Name", "N"
}, False, 1);
IF (as.length == 1)
{
Java2html.Settitle (as [0]);
}
Java2html.Setfooter (NEW STRING [] {
"Nofooter", "NF"
}));
Java2html.Setfooter (NEW STRING [] {
"noheader", "NH"
}));
Java2html.setsimple (new string "{
"simple", "s"
}));
INT ai [] = O012 (new string "
"margin", "m"
}, False, 1);
IF (ai.length == 1)
{
Java2html.SetMarginsize (Ai [0]);
}
INT Ai1 [] = O012 (New String "
"tabs", "t"
}, False, 1);
IF (ai1.length == 1)
{
Java2html.Settabsize (ai1 [0]);
}
String as1 [] = o010 (new string "
"destination", "D"
}, False, 1);
IF (as1.length == 1)
{
Java2html.SetDestination (AS1 [0]);
}
String as2 [] = o010 (new string "
"Javasource", "JS"
}, false, -1);
IF (as2.length> 0) {
Java2html.setjavadirectorySource (AS2);
}
Javadoc ajavadoc [] = o017 (new string "
"javadoc", "jd"
});
IF (ajavadoc.length> 0)
{
Java2html.setjavadoc (ajavadoc);
}
O018 ();
Return True;
}
Private Boolean O06 (String as [])
Throws BadOptionException
{
INT i = 0;
INT j = 0;
Boolean flag = false;
For (; i { For (int K = 0; k { IF (! o02 [i] .Equalsignorecase ("-" as [k])))) { CONTINUE; } O03 [i] = true; IF (j> = 1) { Throw New BadoptionException (as [0] "Should Only Be Set Once); } J ; Flag = true; Break; } } Return flag; } Private string [] O010 (String as [], Boolean Flag, INT i) Throws BadOptionException { INT j = 0; INT K = 0; Vector vector = new vector (); For (; j { For (int L = 0; l { IF (! o02 [j] .equalsignorecase ("-" as [l]))) { CONTINUE; } O03 [J] = True; J ; IF (k == i) { Throw new badoptionException (as [0] "Should Only Be set" "TIME (S)"); } IF (j> = o02.length) { Throw New BadoptionException ("Value Not Set for" AS [0]); } O03 [J] = True; Vector.addelement (O02 [J]); K ; Break; } } IF (Flag && K == 0) { Throw new badoptionException (as [0] "Needs to be set"); Else { RETURN O026 (Vector); } } Private int [] O012 (String as [], Boolean Flag, INT i) Throws BadOptionException { INT j = 0; INT K = 0; Vector vector = new vector (); For (; j { For (int L = 0; l IF (! o02 [j] .equalsignorecase ("-" as [l]))) { CONTINUE; } O03 [J] = True; J ; IF (k == i) { Throw new badoptionException (as [0] "Should Only Be set" "TIME (S)"); } IF (j> = o02.length) { Throw New BadoptionException ("Value Not Set for" AS [0]); } O03 [J] = True; Vector.addelement (O02 [J]); K ; Break; } } IF (Flag && K == 0) { Throw new badoptionException (as [0] "Needs to be set"); } INT Ai [] = NULL; Try { AI = O028 (Vector); } Catch (Exception_ex) { Throw New BadoptionException (AS [0] "Must Be a Number"); } Return Ai; } Public Javadoc [] O017 (String as []) Throws BadOptionException { INT i = 0; INT j = 0; Vector vector = new vector (); For (; i { For (int K = 0; k { IF (! o02 [i] .Equalsignorecase ("-" as [k])))) { CONTINUE; } O03 [i] = true; IF ( i> = o02.length) { Throw New BadoptionException ("Value Not Set for" AS [0]); } O03 [i] = true; Javadoc javadoc = NULL; File file = new file (O02 [i]); String s = null; IF (i 1 { i ; IF (! o02 [i] .StartSwith ("http: //"))) { Throw New BadoptionException ("SECOND PARAMETER OF -JD / -JAVADOC OPTION MUST START with 'http: //'"); } s = O02 [i]; O03 [i] = true; } IF (s! = null) { Javadoc = New javadoc (file, s); Else { Javadoc = new javadoc (file); } Vector.AddeElement (Javadoc); J ; Break; } } Javadoc ajavadoc [] = new javadoc [vector.size ()]; For (int L = 0; l { Ajavadoc [L] = (javadoc) Vector.Elementat (L); } Return ajavadoc; } PRIVATE STRING [] O026 (Vector Vector) { String as [] = new string [vector.size ()]; For (int i = 0; i { AS [I] = (string) Vector.Elementat (i); } Return as; } PRIVATE INT [] O028 (Vector Vector) { INT Ai [] = new int [Vector.size ()]; For (int i = 0; i { Ai [I] = integer.parseint ((string) Vector.Elementat (i)); } Return Ai; } Public void o018 () Throws BadOptionException { For (int i = 0; i { IF (! o03 [i]) { Throw New BadoptionException ("Unkown Argument:" O02 [i]); } } } } Find here: O01 (String as []) { O02 = as; O03 = new bolean [as.length]; } It seems that there is nothing here, then we return to java2html.java file to continue to see: Public static void main (string args []) { ...................... Java2html = new java2html (); O01 = New O01 (ARGS); // here is IF (! o01.O04 (java2html)) { Return; } .................... } It turned out to call the O01.O04 method. Take a look: Boolean O04 (Java2HTML Java2HTML) Throws BadOptionException { IF (o02.Length == 0 || O06 (new string [] { "Help", "h", "?", "/?" })) { System.out.println (O07.O08); Return False; } String as [] = o010 (new string " "Name", "N" }, False, 1); IF (as.length == 1) { Java2html.Settitle (as [0]); } Java2html.Setfooter (NEW STRING [] { "Nofooter", "NF" })); Java2html.Setfooter (NEW STRING [] { "noheader", "NH" })); Java2html.setsimple (new string "{ "simple", "s"}); INT ai [] = O012 (new string " "margin", "m" }, False, 1); IF (ai.length == 1) { Java2html.SetMarginsize (Ai [0]); } INT Ai1 [] = O012 (New String " "tabs", "t" }, False, 1); IF (ai1.length == 1) { Java2html.Settabsize (ai1 [0]); } String as1 [] = o010 (new string " "destination", "D" }, False, 1); IF (as1.length == 1) { Java2html.SetDestination (AS1 [0]); } String as2 [] = o010 (new string " "Javasource", "JS" }, false, -1); IF (as2.length> 0) { Java2html.setjavadirectorySource (AS2); } Javadoc ajavadoc [] = o017 (new string " "javadoc", "jd" }); IF (ajavadoc.length> 0) { Java2html.setjavadoc (ajavadoc); } O018 (); Return True; } I want to know how the matter is, and I listen to the decomposition.