default void buildQueryString()

in spectator-api/src/main/java/com/netflix/spectator/impl/PatternExpr.java [56:93]


  default void buildQueryString(Encoder encoder, StringBuilder builder) {
    if (this instanceof Regex) {
      Regex re = (Regex) this;
      builder.append(encoder.regex(re.matcher()));
    } else if (this instanceof And) {
      List<PatternExpr> exprs = ((And) this).exprs();
      int size = exprs.size();
      if (size == 1) {
        exprs.get(0).buildQueryString(encoder, builder);
      } else if (size > 1) {
        builder.append(encoder.startAnd());
        exprs.get(0).buildQueryString(encoder, builder);
        for (int i = 1; i < size; ++i) {
          builder.append(encoder.separatorAnd());
          exprs.get(i).buildQueryString(encoder, builder);
        }
        builder.append(encoder.endAnd());
      }
    } else if (this instanceof Or) {
      List<PatternExpr> exprs = ((Or) this).exprs();
      int size = exprs.size();
      if (size == 1) {
        exprs.get(0).buildQueryString(encoder, builder);
      } else if (size > 1) {
        builder.append(encoder.startOr());
        exprs.get(0).buildQueryString(encoder, builder);
        for (int i = 1; i < size; ++i) {
          builder.append(encoder.separatorOr());
          exprs.get(i).buildQueryString(encoder, builder);
        }
        builder.append(encoder.endOr());
      }
    } else if (this instanceof Not) {
      builder.append(encoder.startNot());
      ((Not) this).expr().buildQueryString(encoder, builder);
      builder.append(encoder.endNot());
    }
  }