Package com.google.template.soy.tofu

Examples of com.google.template.soy.tofu.SoyTofu


   */
  public static void main(String[] args) {

    // Compile the template.
    SoyFileSet sfs = (new SoyFileSet.Builder()).add(Resources.getResource("simple.soy")).build();
    SoyTofu tofu = sfs.compileToTofu();

    // Example 1.
    writeExampleHeader();
    System.out.println(tofu.newRenderer("soy.examples.simple.helloWorld").render());

    // Create a namespaced tofu object to make calls more concise.
    SoyTofu simpleTofu = tofu.forNamespace("soy.examples.simple");

    // Example 2.
    writeExampleHeader();
    System.out.println(simpleTofu.newRenderer(".helloName")
        .setData(new SoyMapData("name", "Ana")).render());

    // Example 3.
    writeExampleHeader();
    System.out.println(simpleTofu.newRenderer(".helloNames")
        .setData(new SoyMapData("names", new SoyListData("Bob", "Cid", "Dee")))
        .render());
  }
View Full Code Here


    SoyFileSet sfs = sfsBuilder
        .add(Resources.getResource("simple.soy"))
        .add(Resources.getResource("features.soy"))
        .setCompileTimeGlobals(Resources.getResource("FeaturesUsage_globals.txt"))
        .build();
    SoyTofu tofu = sfs.compileToTofu().forNamespace("soy.examples.features");

    SoyMsgBundle msgBundle;
    if (locale.length() > 0) {
      // Use translations from an XLIFF file.
      SoyMsgBundleHandler msgBundleHandler = injector.getInstance(SoyMsgBundleHandler.class);
      URL xliffResource = Resources.getResource(XLIFF_RESOURCE_PREFIX + locale + ".xlf");
      msgBundle = msgBundleHandler.createFromResource(xliffResource);
      if (msgBundle.getLocaleString() == null) {
        throw new IOException(
            "Error reading message resource \"" + XLIFF_RESOURCE_PREFIX + locale + ".xlf\".");
      }
    } else {
      // Use the messages from the Soy source files.
      msgBundle = null;
    }

    // Note: In the examples below, I sometimes use the version of render() that takes a SoyMapData
    // and sometimes use the version that takes a Map<String, ?>. They both work. The version that
    // takes a SoyMapData is more efficient if you need to reuse the same template data object for
    // multiple calls of render() (because the version that takes a Map<String, ?> internally
    // converts it to a new SoyMapData on every call).

    writeExampleHeader("demoComments");
    System.out.println(tofu.newRenderer(DEMO_COMMENTS).setMsgBundle(msgBundle).render());

    writeExampleHeader("demoLineJoining");
    System.out.println(tofu.newRenderer(DEMO_LINE_JOINING).setMsgBundle(msgBundle).render());

    writeExampleHeader("demoRawTextCommands");
    System.out.println(tofu.newRenderer(DEMO_RAW_TEXT_COMMANDS).setMsgBundle(msgBundle).render());

    writeExampleHeader("demoPrint");
    System.out.println(tofu.newRenderer(DEMO_PRINT)
        .setData(new SoyMapData(DEMO_PRINT.BOO, "Boo!", DEMO_PRINT.TWO, 2))
        .setMsgBundle(msgBundle)
        .render());

    writeExampleHeader("demoPrintDirectives");
    System.out.println(tofu.newRenderer(DEMO_PRINT_DIRECTIVES)
        .setData(ImmutableMap.of(DEMO_PRINT_DIRECTIVES.LONG_VAR_NAME,
                                      "thisIsSomeRidiculouslyLongVariableName",
                                 DEMO_PRINT_DIRECTIVES.ELEMENT_ID, "my_element_id",
                                 DEMO_PRINT_DIRECTIVES.CSS_CLASS, "my_css_class"))
         .setMsgBundle(msgBundle)
         .render());

    writeExampleHeader("demoAutoescapeTrue");
    System.out.println(tofu.newRenderer(DEMO_AUTOESCAPE_TRUE)
        .setData(new SoyMapData(DEMO_AUTOESCAPE_TRUE.ITALIC_HTML, "<i>italic</i>"))
        .setMsgBundle(msgBundle)
        .render());

    writeExampleHeader("demoAutoescapeFalse");
    System.out.println(tofu.newRenderer(DEMO_AUTOESCAPE_FALSE)
        .setData(new SoyMapData(DEMO_AUTOESCAPE_FALSE.ITALIC_HTML, "<i>italic</i>"))
        .setMsgBundle(msgBundle)
        .render());

    writeExampleHeader("demoMsg");
    System.out.println(tofu.newRenderer(DEMO_MSG)
        .setData(ImmutableMap.of(DEMO_MSG.NAME, "Ed",
                                 DEMO_MSG.LABS_URL, "http://labs.google.com"))
        .setMsgBundle(msgBundle)
        .render());

    writeExampleHeader("demoIf");
    System.out.println(tofu.newRenderer(DEMO_IF)
        .setData(new SoyMapData("pi", 3.14159)).setMsgBundle(msgBundle).render());
    System.out.println(tofu.newRenderer(DEMO_IF)
        .setData(new SoyMapData("pi", 2.71828)).setMsgBundle(msgBundle).render());
    System.out.println(tofu.newRenderer(DEMO_IF)
        .setData(new SoyMapData("pi", 1.61803)).setMsgBundle(msgBundle).render());

    writeExampleHeader("demoSwitch");
    System.out.println(tofu.newRenderer(DEMO_SWITCH)
        .setData(ImmutableMap.of("name", "Fay")).setMsgBundle(msgBundle).render());
    System.out.println(tofu.newRenderer(DEMO_SWITCH)
        .setData(ImmutableMap.of("name", "Go")).setMsgBundle(msgBundle).render());
    System.out.println(tofu.newRenderer(DEMO_SWITCH)
        .setData(ImmutableMap.of("name", "Hal")).setMsgBundle(msgBundle).render());
    System.out.println(tofu.newRenderer(DEMO_SWITCH)
        .setData(ImmutableMap.of("name", "Ivy")).setMsgBundle(msgBundle).render());

    writeExampleHeader("demoForeach");
    SoyListData persons = new SoyListData();
    persons.add(new SoyMapData("name", "Jen", "numWaffles", 1));
    persons.add(new SoyMapData("name", "Kai", "numWaffles", 3));
    persons.add(new SoyMapData("name", "Lex", "numWaffles", 1));
    persons.add(new SoyMapData("name", "Mel", "numWaffles", 2));
    System.out.println(tofu.newRenderer(DEMO_FOREACH)
        .setData(new SoyMapData(DEMO_FOREACH.PERSONS, persons))
        .setMsgBundle(msgBundle)
        .render());

    writeExampleHeader("demoFor");
    System.out.println(tofu.newRenderer(DEMO_FOR)
        .setData(new SoyMapData(DEMO_FOR.NUM_LINES, 3))
        .setMsgBundle(msgBundle)
        .render());

    writeExampleHeader("demoCallWithoutParam");
    System.out.println(tofu.newRenderer(DEMO_CALL_WITHOUT_PARAM)
        .setData(new SoyMapData(
                     DEMO_CALL_WITHOUT_PARAM.NAME, "Neo",
                     DEMO_CALL_WITHOUT_PARAM.TRIP_INFO,
                         new SoyMapData("name", "Neo", "destination", "The Matrix")))
        .setMsgBundle(msgBundle)
        .render());

    writeExampleHeader("demoCallWithParam");
    System.out.println(tofu.newRenderer(DEMO_CALL_WITH_PARAM)
        .setData(ImmutableMap.of(
                 DEMO_CALL_WITH_PARAM.NAME, "Oz",
                 DEMO_CALL_WITH_PARAM.COMPANION_NAME, "Pip",
                 DEMO_CALL_WITH_PARAM.DESTINATIONS,
                 ImmutableList.of("Gillikin Country", "Munchkin Country",
                                  "Quadling Country", "Winkie Country")))
        .setMsgBundle(msgBundle)
        .render());

    writeExampleHeader("demoCallWithParamBlock");
    System.out.println(tofu.newRenderer(DEMO_CALL_WITH_PARAM_BLOCK)
        .setData(new SoyMapData(DEMO_CALL_WITH_PARAM_BLOCK.NAME, "Quo"))
        .setMsgBundle(msgBundle)
        .render());

    writeExampleHeader("demoExpressions");
    SoyListData students = new SoyListData();
    students.add(new SoyMapData("name", "Rob", "major", "Physics", "year", 1999));
    students.add(new SoyMapData("name", "Sha", "major", "Finance", "year", 1980));
    students.add(new SoyMapData("name", "Tim", "major", "Engineering", "year", 2005));
    students.add(new SoyMapData("name", "Uma", "major", "Biology", "year", 1972));
    System.out.println(tofu.newRenderer(DEMO_EXPRESSIONS)
        .setData(new SoyMapData(DEMO_EXPRESSIONS.STUDENTS, students,
                                DEMO_EXPRESSIONS.CURRENT_YEAR, 2008))
        .setMsgBundle(msgBundle)
        .render());

    writeExampleHeader("demoDoubleBraces");
    System.out.println(tofu.newRenderer(DEMO_DOUBLE_BRACES)
        .setData(ImmutableMap.of(DEMO_DOUBLE_BRACES.SET_NAME, "prime numbers",
                                 DEMO_DOUBLE_BRACES.SET_MEMBERS,
                                     ImmutableList.of(2, 3, 5, 7, 11, 13)))
         .setMsgBundle(msgBundle)
         .render());

    // The Hebrew in the following example comes out as question marks in the output because
    // System.out (and by default stdout generally) is set up to use a Latin encoding. To see
    // this really in action, run the Javascript example.
    writeExampleHeader("demoBidiSupport");
    System.out.println(tofu.newRenderer(DEMO_BIDI_SUPPORT)
        .setData(ImmutableMap.of(DEMO_BIDI_SUPPORT.TITLE, "2008: A BiDi Odyssey",
                                 DEMO_BIDI_SUPPORT.AUTHOR, "John Doe, Esq.",
                                 DEMO_BIDI_SUPPORT.YEAR, "1973",
                                 DEMO_BIDI_SUPPORT.KEYWORDS,
                                 ImmutableList.of(
View Full Code Here

TOP

Related Classes of com.google.template.soy.tofu.SoyTofu

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.