final Level max = parseLevel(CommonAttributes.MAX_LEVEL.resolveModelAttribute(context, levelRange));
final boolean minInclusive = CommonAttributes.MIN_INCLUSIVE.resolveModelAttribute(context, levelRange).asBoolean();
final boolean maxInclusive = CommonAttributes.MAX_INCLUSIVE.resolveModelAttribute(context, levelRange).asBoolean();
return new LevelRangeFilter(min, minInclusive, max, maxInclusive);
} else if (node.hasDefined(CommonAttributes.MATCH.getName())) {
return new RegexFilter(CommonAttributes.MATCH.resolveModelAttribute(context, node).asString());
} else if (node.hasDefined(CommonAttributes.NOT.getName())) {
return new InvertFilter(parseFilter(context, CommonAttributes.NOT.resolveModelAttribute(context, node)));
} else if (node.hasDefined(CommonAttributes.REPLACE.getName())) {
final ModelNode replace = CommonAttributes.REPLACE.resolveModelAttribute(context, node);
final String pattern = CommonAttributes.PATTERN.resolveModelAttribute(context, replace).asString();