Package com.google.caja.parser.js

Examples of com.google.caja.parser.js.ValueProperty


      ParseTreeNode valueNode = bindings.get(valueIdentifier);
      assert keyNode.children().size() == valueNode.children().size();
      List<ObjProperty> children = Lists.newArrayList();
      for (int i = 0; i < keyNode.children().size(); i++) {
        children.add(
            new ValueProperty(
                (StringLiteral) keyNode.children().get(i),
                (Expression) valueNode.children().get(i)));
      }
      substitutes.addAll(children);
      return true;
View Full Code Here


    QuasiNode value = getValue();
    Iterator<ParseTreeNode> it = specimens.iterator();
    while (it.hasNext()) {
      ParseTreeNode candidate = it.next();
      if (!(candidate instanceof ValueProperty)) { continue; }
      ValueProperty prop = (ValueProperty) candidate;
      List<ParseTreeNode> keyCandidate = Lists.<ParseTreeNode>newArrayList(
          prop.getPropertyNameNode());
      if (key.consumeSpecimens(keyCandidate, bindings)
          && keyCandidate.isEmpty()) {
        List<ParseTreeNode> valueCandidate = Lists.<ParseTreeNode>newArrayList(
            prop.getValueExpr());
        if (value.consumeSpecimens(valueCandidate, bindings)) {
          if (valueCandidate.isEmpty()) { it.remove(); }
          return true;
        }
      }
View Full Code Here

          int subsSizeValue = substitutes.size();
          if (subsSizeValue == subsSizeKey + 1) {
            StringLiteral key = (StringLiteral) substitutes.get(subsSize);
            Expression value = (Expression) substitutes.get(subsSize + 1);
            substitutes.subList(subsSize, substitutes.size()).clear();
            substitutes.add(new ValueProperty(key, value));
            return true;
          }
        }
      }
    }
View Full Code Here

        int poolIndex = regexPoolMap.get(regex)[0];
        Expression re = poolIndex < 0
            ? makeRegexp(commonSubstringMap, regex)
            : (Expression) QuasiBuilder.substV(
                "c[@i]", "i", new IntegerLiteral(unk, poolIndex));
        dataObj.appendChild(new ValueProperty(regexObjKey, re));
      }

      String dom2property = propertyNameToDom2Property(prop.name);
      ArrayConstructor altNames = null;
      for (String altDom2Property : prop.dom2properties) {
        if (altDom2Property.equals(dom2property)) { continue; }
        if (altNames == null) {
          altNames = new ArrayConstructor(
              unk, Collections.<Expression>emptyList());
        }
        altNames.appendChild(StringLiteral.valueOf(unk, altDom2Property));
      }
      if (altNames != null) {
        dataObj.appendChild(new ValueProperty(alternatesObjKey, altNames));
      }

      cssSchemaProps.add(new ValueProperty(
          unk, StringLiteral.valueOf(unk, prop.name.getCanonicalForm()),
          dataObj));

      int propBits = 0;
      for (CssPropBit b : data.properties) {
        propBits |= b.jsValue;
      }
      if (LinkStyleWhitelist.HISTORY_INSENSITIVE_STYLE_WHITELIST
          .contains(prop.name)) {
        propBits |= CssPropBit.HISTORY_INSENSITIVE.jsValue;
      } else if (LinkStyleWhitelist.PROPERTIES_ALLOWED_IN_LINK_CLASSES
                 .contains(prop.name)) {
        propBits |= CssPropBit.ALLOWED_IN_LINK.jsValue;
      }
      dataObj.appendChild(
          new ValueProperty(propbitsObjKey, new IntegerLiteral(unk, propBits)));

      List<Expression> litGroups = Lists.newArrayList();
      for (int groupIndex : litPartition.unions[propIndex]) {
        litGroups.add((Expression) QuasiBuilder.substV(
            "L[@i]", "i", new IntegerLiteral(unk, groupIndex)));
      }
      if (!litGroups.isEmpty()) {
        dataObj.appendChild(new ValueProperty(
            litgroupObjKey, new ArrayConstructor(unk, litGroups)));
      }
    }

    ObjectConstructor cssSchema = new ObjectConstructor(unk, cssSchemaProps);
View Full Code Here

    for (Expression test : ((ArrayConstructor) testArray).children()) {
      ObjectConstructor obj = (ObjectConstructor) test;
      String name = (String)
           ((ValueProperty) obj.propertyWithName("test_name"))
           .getValueExpr().getValue();
      ValueProperty testcases = (ValueProperty) obj.propertyWithName("tests");
      // testcases is an object like
      // [{ cssText: ..., golden: ..., messages: ... }]
      for (Expression testCase
           : ((ArrayConstructor) testcases.getValueExpr()).children()) {
        ObjectConstructor testCaseObj = (ObjectConstructor) testCase;
        String cssText = null;
        String golden = null;
        ArrayConstructor messages = null;
        for (ObjProperty oprop : testCaseObj.children()) {
          ValueProperty prop = (ValueProperty) oprop;
          String pname = prop.getPropertyName();
          try {
            if ("cssText".equals(pname)) {
              cssText = ((StringLiteral) prop.getValueExpr())
                  .getUnquotedValue();
            } else if ("golden".equals(pname)) {
              golden = ((StringLiteral) prop.getValueExpr())
                  .getUnquotedValue();
            } else if ("messages".equals(pname)) {
              messages = (ArrayConstructor) prop.getValueExpr();
            } else if ("altGolden".equals(pname)) {
              // OK.
            } else {
              fail(
                  "Unrecognized testcase property " + pname + " in "
View Full Code Here

TOP

Related Classes of com.google.caja.parser.js.ValueProperty

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.