Java 类com.fasterxml.jackson.core.filter.FilteringGeneratorDelegate 实例源码

项目:Elasticsearch    文件:JsonXContentGenerator.java   
public JsonXContentGenerator(JsonGenerator jsonGenerator, OutputStream os, String... filters) {
    if (jsonGenerator instanceof GeneratorBase) {
        this.base = (GeneratorBase) jsonGenerator;
    } else {
        this.base = null;
    }

    if (CollectionUtils.isEmpty(filters)) {
        this.generator = jsonGenerator;
        this.filter = null;
    } else {
        this.filter = new FilteringGeneratorDelegate(jsonGenerator, new FilterPathBasedFilter(filters), true, true);
        this.generator = this.filter;
    }

    this.os = os;
}
项目:elasticsearch_my    文件:FilterPathGeneratorFilteringTests.java   
private void assertResult(String input, String filter, boolean inclusive, String expected) throws Exception {
    try (BytesStreamOutput os = new BytesStreamOutput()) {
        try (FilteringGeneratorDelegate generator = new FilteringGeneratorDelegate(JSON_FACTORY.createGenerator(os),
                new FilterPathBasedFilter(Collections.singleton(filter), inclusive), true, true)) {
            try (JsonParser parser = JSON_FACTORY.createParser(replaceQuotes(input))) {
                while (parser.nextToken() != null) {
                    generator.copyCurrentStructure(parser);
                }
            }
        }
        assertThat(os.bytes().utf8ToString(), equalTo(replaceQuotes(expected)));
    }
}
项目:GitHub    文件:TestUtf8Generator.java   
public void testFilteringWithEscapedChars() throws Exception
{
    final String SAMPLE_WITH_QUOTES = "\b\t\f\n\r\"foo\"\u0000";

    ByteArrayOutputStream out = new ByteArrayOutputStream();
    @SuppressWarnings("resource")
    JsonGenerator g = JSON_F.createGenerator(ObjectWriteContext.empty(), out);

    FilteringGeneratorDelegate gen = new FilteringGeneratorDelegate(g,
            new JsonPointerBasedFilter("/escapes"),
            true, // includePath
            false // multipleMatches
    );

    //final String JSON = "{'a':123,'array':[1,2],'escapes':'\b\t\f\n\r\"foo\"\u0000'}";

    gen.writeStartObject();

    gen.writeFieldName("a");
    gen.writeNumber((int) 123);

    gen.writeFieldName("array");
    gen.writeStartArray();
    gen.writeNumber((short) 1);
    gen.writeNumber((short) 2);
    gen.writeEndArray();

    gen.writeFieldName("escapes");

    final byte[] raw = SAMPLE_WITH_QUOTES.toString().getBytes("UTF-8");
    gen.writeUTF8String(raw, 0, raw.length);

    gen.writeEndObject();
    gen.close();

    JsonParser p = JSON_F.createParser(ObjectReadContext.empty(), out.toByteArray());

    assertToken(JsonToken.START_OBJECT, p.nextToken());
    assertToken(JsonToken.FIELD_NAME, p.nextToken());
    assertEquals("escapes", p.currentName());

    assertToken(JsonToken.VALUE_STRING, p.nextToken());
    assertEquals(SAMPLE_WITH_QUOTES, p.getText());
    assertToken(JsonToken.END_OBJECT, p.nextToken());
    assertNull(p.nextToken());
    p.close();
}