Exemplo n.º 1
0
  public static TagType resolve(String value) {

    if (value == null || value.isEmpty()) {
      return null;
    }

    value = value.trim();
    for (TagType type : getAll()) {
      if (type.getValue().equalsIgnoreCase(value)) {
        return type;
      }
    }

    return null;
  }
Exemplo n.º 2
0
  public static TagHolder resolveTagHolder(String tagString, int start, int end) {

    if (tagString == null || tagString.isEmpty()) {
      return null;
    }

    TagHolder result = new TagHolder();
    String trimmedTag = tagString.substring(1, tagString.length() - 1);
    // Removed < and >
    char startChar = trimmedTag.charAt(0);
    if (startChar == '/') {
      result.setStartTag(false);
      trimmedTag = trimmedTag.substring(2);
    } else {
      result.setStartTag(true);
      trimmedTag = trimmedTag.substring(1);
    }

    int spaceLocation = trimmedTag.indexOf(" ");
    if (spaceLocation < 0) {
      spaceLocation = trimmedTag.length();
    }
    String name = trimmedTag.substring(0, spaceLocation);
    TagType newType = TagType.resolve(name);
    if (newType == null) {
      logger.warn("Tag type not recognized: " + name);
      return null;
    }

    result.setType(newType);

    result.setStartTagPosition(start);
    result.setEndTagPosition(end);

    if (result.isStartTag()) {
      int indexOfVar = trimmedTag.indexOf("var=");
      String newExpression = trimmedTag.substring(indexOfVar + 5);
      newExpression = newExpression.substring(0, newExpression.lastIndexOf('"'));
      result.setExpression(newExpression);
    }
    return result;
  }