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());
}
}