Esempio n. 1
0
  private String getFullname(Tag tag, String defaultValue) {
    if (tag != null) {
      String fn = tag.getFullname();
      if (StringUtil.isEmpty(fn)) fn = tag.getTagLibTag().getFullName();
      if (!StringUtil.isEmpty(fn)) return fn;
    }

    return defaultValue;
  }
Esempio n. 2
0
  /**
   * Prueft ob das angegebene Tag innerhalb seiner Ebene einmalig ist oder nicht.
   *
   * @param tag Ausgangspunkt, nach diesem tag darf das angegebene nicht vorkommen.
   * @return kommt das Tag vor.
   */
  public static boolean hasSisterTagWithSameName(Tag tag) {

    Body body = (Body) tag.getParent();
    List<Statement> stats = body.getStatements();
    Iterator<Statement> it = stats.iterator();
    Statement other;
    String name = tag.getTagLibTag().getName();

    while (it.hasNext()) {
      other = it.next();
      if (other != tag
          && other instanceof Tag
          && ((Tag) other).getTagLibTag().getName().equals(name)) return true;
    }
    return false;
  }
Esempio n. 3
0
 public static void removeLiterlChildren(Tag tag, boolean recursive) {
   Body body = tag.getBody();
   if (body != null) {
     List<Statement> list = body.getStatements();
     Statement[] stats = list.toArray(new Statement[list.size()]);
     PrintOut po;
     Tag t;
     for (int i = 0; i < stats.length; i++) {
       if (stats[i] instanceof PrintOut) {
         po = (PrintOut) stats[i];
         if (po.getExpr() instanceof Literal) {
           body.getStatements().remove(po);
         }
       } else if (recursive && stats[i] instanceof Tag) {
         t = (Tag) stats[i];
         if (t.getTagLibTag().isAllowRemovingLiteral()) {
           removeLiterlChildren(t, recursive);
         }
       }
     }
   }
 }