return new InvertFilter(parseFilter(context, CommonAttributes.NOT.resolveModelAttribute(context, node)));
} else if (node.hasDefined(CommonAttributes.REPLACE.getName())) {
final String pattern = CommonAttributes.PATTERN.resolveModelAttribute(context, node).asString();
final String replacement = CommonAttributes.REPLACEMENT.resolveModelAttribute(context, node).asString();
final boolean replaceAll = CommonAttributes.REPLACE_ALL.resolveModelAttribute(context, node).asBoolean();
return new SubstituteFilter(pattern, replacement, replaceAll);
}
final String name = node.hasDefined(CommonAttributes.FILTER.getName()) ? node.get(CommonAttributes.FILTER.getName()).asString() : node.asString();
throw new OperationFailedException(new ModelNode().set(MESSAGES.invalidFilter(name)));
}