Java2HTML改造手記(3) (轉)
Ja 2HTML改造手記(3)
:namespace prefix = o ns = "urn:schemas--com::office" />
先重點看這個:
public static void main(String args[])
{
……………….
java2html = new Java2HTML();
o01 = new O01(args);
……………….
}
引數又跳轉到o01上了.那麼我們繼續,沒辦法,逆向工程是需要耐心的.
// 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;
}
欲知後事如何,且聽下回分解.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-982061/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java2HTML改造手記(5) (轉)JavaHTML
- Java2HTML改造手記(7) (轉)JavaHTML
- Java2HTML改造手記(6) (轉)JavaHTML
- Java2HTML改造手記(續) (轉)JavaHTML
- Java2HTML改造手記(1) (轉)JavaHTML
- Java2HTML改造手記(2) (轉)JavaHTML
- Java2HTML改造手記(4) (轉)JavaHTML
- Windows快速啟動欄拓寬改造記(轉)Windows
- Vue.js SSR Step by Step (3) - 改造 vue/webpack 腳手架Vue.jsWeb
- 安裝RedHat7.3並改造的記錄(轉)Redhat
- Knockout.js隨手記(3)JS
- sqlrelay 安裝手記(轉)SQL
- MySpy開發手記 (轉)
- DirectX學習手記(-) (轉)
- DirectX學習手記(二) (轉)
- FC6安裝手記(轉)
- React學習手記3-事件處理React事件
- oracle實驗記錄 (手動 duplicate database(3))OracleDatabase
- Slackware 10.0 安裝手記(轉)
- Fedora Core 4 Release 安裝手記(轉)
- 高效能閱讀 #3 讀書環境改造
- moquette改造筆記(一):整合到SpringBoot筆記Spring Boot
- gentoo簡單安裝手冊(stage3)(轉)
- RayLx 1.5 硬碟安裝手記(從FAT)(轉)硬碟
- ESMTP身份驗證機制探索手記 (轉)
- Servlet/JSP 容器開發手記2 (轉)ServletJS
- 3D GIF Designer v2.21 pj手記 (3千字)3D
- IPv6改造方案:協議轉換技術協議
- Presto改造REST
- spritecow改造
- Gentoo 1.4RC_2光碟安裝手記(轉)
- R/3 ABAP開發學習筆記(轉)筆記
- <轉>oracle效能調整讀書筆記(3)Oracle筆記
- 舊專案 TypeScript 改造問題與解決方案記TypeScript
- Android徹底元件化—UI跳轉升級改造Android元件化UI
- EZIP1.0脫殼手記 ――娃娃/[CCG] (3千字)
- XML輕鬆學習手冊(3)XML概念之一(轉)XML
- 安卓手機改造伺服器——解決chroot下無法使用systemctl安卓伺服器