Java2HTML改造手记(3)

类别:Java 点击:0 评论:0 推荐:
Ja 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;

    }

 

欲知后事如何,且听下回分解.

本文地址:http://com.8s8s.com/it/it17540.htm