站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Java 专题Java2HTML改造手记(3)

Java2HTML改造手记(3)

摘要: Java2HTML改造手记(3)

先重点看这个:
public static void main(String args[]) {
……………….
java2html = new Java2HTML();
o01 = new O01(args);
………………. }
参数又跳转到o01上了.那么我们继续,没办法,逆向工程是需要耐心的.
// Source File Name: O01.java
package com.java2html;
import java.io.File;
import java.io.PrintStream;
import java.util.Vector;
// Referenced 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 boolean[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(O06(new String[] {
"nofooter", "nf"
}));
java2html.setFooter(O06(new String[] {
"noheader", "nh"
}));
java2html.setSimple(O06(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 < O02.length; i++)
{
for(int k = 0; k < as.length; 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 < O02.length; j++)
{
for(int l = 0; l < as.length; l++)
{
if(!O02[j].equalsIgnoreCase("-" + as[l]))
{
continue; }
O03[j] = true;
j++;
if(k == i)
{
throw new BadOptionException(as[0] + " should only be set " + i + " 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 < O02.length; j++) {
for(int l = 0; l < as.length; l++) {
if(!O02[j].equalsIgnoreCase("-" + as[l])) {
continue; }
O03[j] = true;
j++;
if(k == i) {
throw new BadOptionException(as[0] + " should only be set " + i + " 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 < O02.length; i++) {
for(int k = 0; k < as.length; 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 < O02.length && !O02[i + 1].startsWith("-"))
{
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.addElement(javadoc);
j++;
break; } }
JavaDoc ajavadoc[] = new JavaDoc[vector.size()];
for(int l = 0; l < vector.size(); 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 < vector.size(); 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 < vector.size(); i++) {
ai[i] = Integer.parseInt((String)vector.elementAt(i)); }
return ai; }
public void O018()
throws BadOptionException {
for(int i = 0; i < O03.length; i++) {
if(!O03[i]) {
throw new BadOptionException("Unkown Argument :" + O02[i]); } } } }
找到这里:
O01(String as[])
{
O02 = as;
O03 = new boolean[as.length]; }
看来这里没有作什么,那么我们回到java2html.java文件继续往下看:
public static void main(String args[])
{
…………………..
java2html = new Java2HTML();
o01 = new O01(args);
//这里就是了
if(!o01.O04(java2html))
{
return; }
…………………. }
原来调用了o01.O04方法.看看:
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(O06(new String[] {
"nofooter", "nf"
}));
java2html.setFooter(O06(new String[] {
"noheader", "nh"
}));
java2html.setSimple(O06(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;
}
欲知后事如何,且听下回分解.
↑返回目录
前一篇: Java2HTML改造手记(4)
后一篇: Java2HTML改造手记(1)