Java2HTML改造手记(3)

    技术2022-05-11  60

    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;

        }

     

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


    最新回复(0)