@Override
 protected void writeValues(JsonWriter writer, StringFilter value) throws IOException {
   super.writeValues(writer, value);
   writer.name(JsonValues.rule.name()).value(((StringFilter.FilterSet) value).getRule().name());
   writer.name(JsonValues.set.name());
   List<StringFilter> set = ((StringFilter.FilterSet) value).getSet();
   GSON.toJson(set, set.getClass(), writer);
 }
 @Override
 protected void writeValues(JsonWriter writer, StringFilter value) throws IOException {
   super.writeValues(writer, value);
   writer.name(JsonValues.patterns.name());
   List<Pattern> patterns = ((StringFilter.PatternList) value).getPatterns();
   writer.beginArray();
   for (Pattern pattern : patterns) {
     writer.value(pattern.pattern());
   }
   writer.endArray();
 }