⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 proxygenerator.java

📁 Jamon是一个Java文本模板引擎
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        m_writer.println("  throws " + ClassNames.IOEXCEPTION);        m_writer.openBlock();        if (m_templateUnit.getRenderArgs().hasNext())        {            m_writer.println(                "ImplData"                + m_templateUnit.getGenericParams().generateGenericParamsList()                + " implData = getImplData();");            for (Iterator<AbstractArgument> i = m_templateUnit.getRenderArgs();                 i.hasNext(); )            {                AbstractArgument arg = i.next();                m_writer.println("implData." + arg.getSetterName()                                 + "(" + arg.getName() + ");");            }        }        if (m_templateUnit.getGenericParams().getCount() > 0) {            m_writer.print("@SuppressWarnings(\"unchecked\") ");        }        m_writer.println(            "Intf instance = (Intf) getTemplateManager().constructImpl(this);"            );        m_writer.println("instance.renderNoFlush(" + ArgNames.WRITER + ");");        m_writer.println("reset();");        m_writer.closeBlock();        m_writer.println();    }    private void generateMakeRenderer()    {        m_writer.print("public " + ClassNames.RENDERER + " makeRenderer");        m_writer.openList();        m_templateUnit.printRenderArgsDecl(m_writer);        m_writer.closeList();        m_writer.println();        m_writer.openBlock();        m_writer.print(  "return new " + ClassNames.ABSTRACT_RENDERER + "() ");        m_writer.openBlock();        m_writer.println("@Override");        m_writer.println("public void renderTo(" + ArgNames.WRITER_DECL + ")");        m_writer.println(  "  throws " + ClassNames.IOEXCEPTION);        m_writer.openBlock();        m_writer.print("render");        m_writer.openList();        m_writer.printListElement(ArgNames.WRITER);        m_templateUnit.printRenderArgs(m_writer);        m_writer.closeList();        m_writer.println(";");        m_writer.closeBlock();        m_writer.closeBlock(";");        m_writer.closeBlock();        m_writer.println();    }    private void generateImplData()    {        m_templateUnit.getGenericParams()            .suppressGenericHidingWarnings(m_writer);        m_writer.println(            "protected static class ImplData"            + m_templateUnit.getGenericParams().generateGenericsDeclaration());        m_writer.print("  extends ");        if(m_templateUnit.hasParentPath())        {            m_writer.println(PathUtils.getFullyQualifiedIntfClassName(                m_templateUnit.getParentPath())                             + ".ImplData");        }        else        {            m_writer.println(ClassNames.IMPL_DATA);        }        m_writer.openBlock();        if (m_templateUnit.isOriginatingJamonContext())        {            m_writer.println(                "private " + m_templateUnit.getJamonContextType()                + " m_jamonContext;");            m_writer.println(                "public " + m_templateUnit.getJamonContextType()                + " getJamonContext()");            m_writer.openBlock();            m_writer.println("return m_jamonContext;");            m_writer.closeBlock();            m_writer.println(                "public void setJamonContext("                + m_templateUnit.getJamonContextType() + " p_jamonContext)");            m_writer.openBlock();            m_writer.println("m_jamonContext = p_jamonContext;");            m_writer.closeBlock();        }        for (Iterator<AbstractArgument> i = m_templateUnit.getDeclaredArgs();             i.hasNext(); )        {            i.next().generateImplDataCode(m_writer);        }        m_writer.closeBlock();        if (! m_templateUnit.isParent())        {            m_writer.println("@Override");            m_writer.println(                "protected ImplData"                + m_templateUnit.getGenericParams().generateGenericParamsList()                + " makeImplData()");            m_writer.openBlock();            m_writer.println(                "return new ImplData"                + m_templateUnit.getGenericParams().generateGenericParamsList()                             + "();");            m_writer.closeBlock();        }        m_writer.println(            "@Override @SuppressWarnings(\"unchecked\") protected ImplData"            + m_templateUnit.getGenericParams().generateGenericParamsList()            + " getImplData()");        m_writer.openBlock();        m_writer.println(            "return (ImplData"            + m_templateUnit.getGenericParams().generateGenericParamsList()            + ") super.getImplData();");        m_writer.closeBlock();    }    private void generateJamonContextSetter()    {        m_writer.println();        if (! m_templateUnit.isOriginatingJamonContext())        {            m_writer.print("@Override ");        }        m_writer.print("public " );        printFullProxyType();        m_writer.println(            " setJamonContext(" + m_templateUnit.getJamonContextType()            + " p_jamonContext)");        m_writer.openBlock();        m_writer.println("getImplData().setJamonContext(p_jamonContext);");        m_writer.println("return this;");        m_writer.closeBlock();    }    private void generateOptionalArgs()    {        for (Iterator<OptionalArgument> i =                m_templateUnit.getDeclaredOptionalArgs();             i.hasNext(); )        {            OptionalArgument arg = i.next();            m_writer.println();            m_writer.println("protected " + arg.getType() + " "                             + arg.getName() + ";");            m_writer.print("public final ");            printFullProxyType();            m_writer.println(                " " + arg.getSetterName()                + "(" + arg.getType() +" p_" + arg.getName() + ")");            m_writer.openBlock();            m_writer.println(                "(" + "getImplData()" + ")."                + arg.getSetterName() + "(p_" + arg.getName() + ");");            m_writer.println("return this;");            m_writer.closeBlock();        }    }    private void printFullProxyType()    {        String pkgName = getPackageName();        if (pkgName.length() > 0)        {            m_writer.print(pkgName + ".");        }        m_writer.print(getClassName());        m_writer.print(m_templateUnit.getGenericParams().generateGenericsDeclaration());    }    private void generateIntf()    {        m_templateUnit.getGenericParams()            .suppressGenericHidingWarnings(m_writer);        m_writer.println(            "protected interface Intf"            + m_templateUnit.getGenericParams().generateGenericsDeclaration());        m_writer.print("  extends "                       + (m_templateUnit.hasParentPath()                          ? PathUtils.getFullyQualifiedIntfClassName(                              m_templateUnit.getParentPath()) + ".Intf"                          : ClassNames.TEMPLATE_INTF));        m_writer.openBlock();        generateFragmentInterfaces(true);        if(! m_templateUnit.isParent())        {            m_writer.println("void renderNoFlush(" + ArgNames.WRITER_DECL                             + ") throws " + ClassNames.IOEXCEPTION + ";");            m_writer.println();        }        m_writer.closeBlock();    }    private void generateParentRendererClass()    {        m_writer.println("public abstract class ParentRenderer");        m_writer.openBlock();        m_writer.println("protected ParentRenderer() {}");        for (Iterator<OptionalArgument> i =                m_templateUnit.getSignatureOptionalArgs();             i.hasNext(); )        {            OptionalArgument arg = i.next();            m_writer.println();            String name = arg.getName();            m_writer.print("public final ParentRenderer ");            m_writer.println(arg.getSetterName()                             + "(" + arg.getType() +" p_" + name + ")");            m_writer.openBlock();            m_writer.println(getClassName() + ".this." + arg.getSetterName()                             + "(" + "p_" + name + ");");            m_writer.println("return this;");            m_writer.closeBlock();        }        if (m_templateUnit.getJamonContextType() != null)        {            m_writer.print(                "public final ParentRenderer setJamonContext("                + m_templateUnit.getJamonContextType()                + " p_jamonContext)");            m_writer.openBlock();            m_writer.println(                getClassName() + ".this.setJamonContext(p_jamonContext);");            m_writer.println("return this;");            m_writer.closeBlock();        }        if (! m_templateUnit.hasParentPath())        {            m_writer.print("public void render");            m_writer.openList();            m_writer.printListElement(ArgNames.WRITER_DECL);            m_templateUnit.printDeclaredRenderArgsDecl(m_writer);            m_writer.closeList();            m_writer.println();            m_writer.print("  throws " + ClassNames.IOEXCEPTION);            m_writer.openBlock();            m_writer.print("renderNoFlush");            m_writer.openList();            m_writer.printListElement(ArgNames.WRITER);            m_templateUnit.printDeclaredRenderArgs(m_writer);            m_writer.closeList();            m_writer.println(";");            m_writer.println(ArgNames.WRITER + ".flush();");            m_writer.closeBlock();            m_writer.print("public void renderNoFlush");            m_writer.openList();            m_writer.printListElement(ArgNames.WRITER_DECL);            m_templateUnit.printDeclaredRenderArgsDecl(m_writer);            m_writer.closeList();            m_writer.println();            m_writer.print("  throws " + ClassNames.IOEXCEPTION);            m_writer.openBlock();            m_writer.print("renderChild");            m_writer.openList();            m_writer.printListElement(ArgNames.WRITER);            m_templateUnit.printDeclaredRenderArgs(m_writer);            m_writer.closeList();            m_writer.println(";");            m_writer.closeBlock();            generateMakeRenderer();        }        else        {            generateMakeParentRenderer();        }        m_writer.print("protected abstract void renderChild");        m_writer.openList();        m_writer.printListElement(ArgNames.WRITER_DECL);        m_templateUnit.printRenderArgsDecl(m_writer);        m_writer.closeList();        m_writer.println();        m_writer.println("  throws " + ClassNames.IOEXCEPTION + ";");        m_writer.closeBlock();    }    private void generateMakeParentRenderer()    {        String parentRendererClass =            PathUtils.getFullyQualifiedIntfClassName(                m_templateUnit.getParentPath()) + ".ParentRenderer";        m_writer.print("public " + parentRendererClass                       + " makeParentRenderer");        m_writer.openList();        m_templateUnit.printDeclaredRenderArgsDecl(m_writer);        m_writer.closeList();        m_writer.println();        m_writer.openBlock();        m_writer.print("return new " + parentRendererClass + "() ");        m_writer.openBlock();        m_writer.print("@Override protected void renderChild");        m_writer.openList();        m_writer.printListElement(ArgNames.WRITER_DECL);        m_templateUnit.printParentRenderArgsDecl(m_writer);        m_writer.closeList();        m_writer.println();        m_writer.println("  throws " + ClassNames.IOEXCEPTION);        m_writer.openBlock();        m_writer.print(PathUtils                       .getFullyQualifiedIntfClassName(getClassName()));        if (m_templateUnit.isParent())        {            m_writer.print(".ParentRenderer.this.renderChild");        }        else        {            m_writer.print(".this.renderNoFlush");        }        m_writer.openList();        m_writer.printListElement(ArgNames.WRITER);        m_templateUnit.printRenderArgs(m_writer);        m_writer.closeList();        m_writer.println(";");        m_writer.closeBlock();        m_writer.closeBlock(";");        m_writer.closeBlock();    }    private void generateEpilogue()    {        m_writer.println();        m_writer.closeBlock();    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -