Package com.google.template.soy.soytree

Examples of com.google.template.soy.soytree.TemplateDelegateNode


    // Check that all delegate templates with the same name have the same declared params and
    // content kind.
    for (List<DelegateTemplateDivision> divisions : delTemplatesMap.values()) {

      TemplateDelegateNode firstDelTemplate = null;
      String firstDelPackageName = null;
      Set<SoyDocParam> firstSoyDocParamsSet = null;
      ContentKind firstContentKind = null;

      for (DelegateTemplateDivision division : divisions) {
        for (TemplateDelegateNode delTemplate : division.delPackageNameToDelTemplateMap.values()) {
          String currDelPackageName =  (delTemplate.getDelPackageName() != null) ?
              delTemplate.getDelPackageName() : "<default>";

          if (firstDelTemplate == null) {
            // First template encountered.
            firstDelTemplate = delTemplate;
            firstDelPackageName = currDelPackageName;
            firstSoyDocParamsSet = Sets.newHashSet(delTemplate.getSoyDocParams());
            firstContentKind = delTemplate.getContentKind();

          } else {
            // Not first template encountered.
            Set<SoyDocParam> currSoyDocParamsSet = Sets.newHashSet(delTemplate.getSoyDocParams());
            if (! currSoyDocParamsSet.equals(firstSoyDocParamsSet)) {
              throw SoySyntaxExceptionUtils.createWithNode(
                  String.format(
                      "Found delegate templates with same name '%s' but different param" +
                          " declarations in delegate packages '%s' and '%s'.",
                      firstDelTemplate.getDelTemplateName(), firstDelPackageName,
                      currDelPackageName),
                  firstDelTemplate);
            }
            if (delTemplate.getContentKind() != firstContentKind) {
              // TODO: This is only *truly* a requirement if the strict mode deltemplates are being
View Full Code Here


        if (! (derivedName.equals(clone.getTemplateName()) &&
            Objects.equal(derivedPartialName, clone.getPartialTemplateName()))) {
          throw new AssertionError();
        }
      } else if (tn instanceof TemplateDelegateNode) {
        TemplateDelegateNode tdn = (TemplateDelegateNode) tn;
        clone = new TemplateDelegateNode(
            cloneId, soyFileHeaderInfo, derivedName, tdn.getDelTemplateVariant(),
            tdn.getDelPriority(), tn.getAutoescapeMode(), tn.getContentKind(), tn.getSoyDoc());

        if (! (derivedName.equals(((TemplateDelegateNode) clone).getDelTemplateName()))) {
          throw new AssertionError();
        }
      } else {
View Full Code Here

            variantExpr.toSourceString()));
      }
    }
    DelTemplateKey delegateKey = new DelTemplateKey(node.getDelCalleeName(), variant);

    TemplateDelegateNode callee;
    try {
      callee = templateRegistry.selectDelTemplate(delegateKey, activeDelPackageNames);
    } catch (DelegateTemplateConflictException e) {
      throw new RenderException(e.getMessage());
    }
View Full Code Here

    jsCodeBuilder.decreaseIndent();
    jsCodeBuilder.appendLine("};");

    // ------ If delegate template, generate a statement to register it. ------
    if (node instanceof TemplateDelegateNode) {
      TemplateDelegateNode nodeAsDelTemplate = (TemplateDelegateNode) node;
      String delTemplateIdExprText =
          "soy.$$getDelTemplateId('" + nodeAsDelTemplate.getDelTemplateName() + "')";
      String delTemplateVariantExprText = "'" + nodeAsDelTemplate.getDelTemplateVariant() + "'";
      jsCodeBuilder.appendLine(
          "soy.$$registerDelegateFn(",
          delTemplateIdExprText, ", ", delTemplateVariantExprText, ", ",
          Integer.toString(nodeAsDelTemplate.getDelPriority()), ", ",
          nodeAsDelTemplate.getTemplateName(), ");");
    }
  }
View Full Code Here

TOP

Related Classes of com.google.template.soy.soytree.TemplateDelegateNode

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.