Java 类org.elasticsearch.common.xcontent.XContentGenerator 实例源码

项目:elasticsearch_my    文件:JsonVsCborTests.java   
public void testCompareParsingTokens() throws IOException {
    BytesStreamOutput xsonOs = new BytesStreamOutput();
    XContentGenerator xsonGen = XContentFactory.xContent(XContentType.CBOR).createGenerator(xsonOs);

    BytesStreamOutput jsonOs = new BytesStreamOutput();
    XContentGenerator jsonGen = XContentFactory.xContent(XContentType.JSON).createGenerator(jsonOs);

    xsonGen.writeStartObject();
    jsonGen.writeStartObject();

    xsonGen.writeStringField("test", "value");
    jsonGen.writeStringField("test", "value");

    xsonGen.writeFieldName("arr");
    xsonGen.writeStartArray();
    jsonGen.writeFieldName("arr");
    jsonGen.writeStartArray();
    xsonGen.writeNumber(1);
    jsonGen.writeNumber(1);
    xsonGen.writeNull();
    jsonGen.writeNull();
    xsonGen.writeEndArray();
    jsonGen.writeEndArray();

    xsonGen.writeEndObject();
    jsonGen.writeEndObject();

    xsonGen.close();
    jsonGen.close();

    verifySameTokens(createParser(JsonXContent.jsonXContent, jsonOs.bytes()), createParser(CborXContent.cborXContent, xsonOs.bytes()));
}
项目:elasticsearch_my    文件:XContentBuilderTests.java   
public void testPrettyWithLfAtEnd() throws Exception {
    ByteArrayOutputStream os = new ByteArrayOutputStream();
    XContentGenerator generator = XContentFactory.xContent(XContentType.JSON).createGenerator(os);
    generator.usePrettyPrint();
    generator.usePrintLineFeedAtEnd();

    generator.writeStartObject();
    generator.writeStringField("test", "value");
    generator.writeEndObject();
    generator.flush();

    generator.close();
    // double close, and check there is no error...
    generator.close();

    byte[] bytes = os.toByteArray();
    assertThat((char) bytes[bytes.length - 1], equalTo('\n'));
}
项目:elasticsearch_my    文件:XContentBuilderTests.java   
public void testReuseJsonGenerator() throws Exception {
    ByteArrayOutputStream os = new ByteArrayOutputStream();
    XContentGenerator generator = XContentFactory.xContent(XContentType.JSON).createGenerator(os);
    generator.writeStartObject();
    generator.writeStringField("test", "value");
    generator.writeEndObject();
    generator.flush();

    assertThat(new BytesRef(os.toByteArray()), equalTo(new BytesRef("{\"test\":\"value\"}")));

    // try again...
    os.reset();
    generator.writeStartObject();
    generator.writeStringField("test", "value");
    generator.writeEndObject();
    generator.flush();
    // we get a space at the start here since it thinks we are not in the root object (fine, we will ignore it in the real code we use)
    assertThat(new BytesRef(os.toByteArray()), equalTo(new BytesRef(" {\"test\":\"value\"}")));
}
项目:molgenis    文件:DocumentContentBuilder.java   
/**
 * Create Elasticsearch document source content from entity
 *
 * @param entity the entity to convert to document source content
 * @return Elasticsearch document source content
 */
Document createDocument(Entity entity)
{
    int maxIndexingDepth = entity.getEntityType().getIndexingDepth();
    XContentBuilder contentBuilder;
    try
    {
        contentBuilder = XContentFactory.contentBuilder(JSON);
        XContentGenerator generator = contentBuilder.generator();
        generator.writeStartObject();
        createRec(entity, generator, 0, maxIndexingDepth);
        generator.writeEndObject();
    }
    catch (IOException e)
    {
        throw new RuntimeException(e);
    }
    String documentId = toElasticsearchId(entity.getIdValue());
    return Document.create(documentId, contentBuilder);
}
项目:elasticsearch-river-remote    文件:DocumentWithCommentsIndexStructureBuilderTest.java   
@Test
public void addValueToTheIndexField() throws Exception {
    DocumentWithCommentsIndexStructureBuilder tested = new DocumentWithCommentsIndexStructureBuilder(
            mockEsIntegrationComponent(), null, null, createSettingsWithMandatoryFilled(), true);

    XContentGenerator xContentGeneratorMock = mock(XContentGenerator.class);
    XContentBuilder out = XContentBuilder.builder(preparexContentMock(xContentGeneratorMock));

    // case - string field
    tested.addValueToTheIndexField(out, "test", "testvalue");
    verify(xContentGeneratorMock).writeFieldName("test");
    verify(xContentGeneratorMock).writeString("testvalue");

    // case - integer field
    reset(xContentGeneratorMock);
    tested.addValueToTheIndexField(out, "testint", new Integer(10));
    verify(xContentGeneratorMock).writeFieldName("testint");
    verify(xContentGeneratorMock).writeNumber(10);

    // case - nothing added if value is null
    reset(xContentGeneratorMock);
    tested.addValueToTheIndexField(out, "testnull", null);
    Mockito.verifyZeroInteractions(xContentGeneratorMock);
}
项目:elasticsearch_my    文件:JsonVsSmileTests.java   
public void testCompareParsingTokens() throws IOException {
    BytesStreamOutput xsonOs = new BytesStreamOutput();
    XContentGenerator xsonGen = XContentFactory.xContent(XContentType.SMILE).createGenerator(xsonOs);

    BytesStreamOutput jsonOs = new BytesStreamOutput();
    XContentGenerator jsonGen = XContentFactory.xContent(XContentType.JSON).createGenerator(jsonOs);

    xsonGen.writeStartObject();
    jsonGen.writeStartObject();

    xsonGen.writeStringField("test", "value");
    jsonGen.writeStringField("test", "value");

    xsonGen.writeFieldName("arr");
    xsonGen.writeStartArray();
    jsonGen.writeFieldName("arr");
    jsonGen.writeStartArray();
    xsonGen.writeNumber(1);
    jsonGen.writeNumber(1);
    xsonGen.writeNull();
    jsonGen.writeNull();
    xsonGen.writeEndArray();
    jsonGen.writeEndArray();

    xsonGen.writeEndObject();
    jsonGen.writeEndObject();

    xsonGen.close();
    jsonGen.close();

    verifySameTokens(createParser(JsonXContent.jsonXContent, jsonOs.bytes()),
            createParser(SmileXContent.smileXContent, xsonOs.bytes()));
}
项目:elasticsearch_my    文件:XContentBuilderTests.java   
public void testWritingBinaryToStream() throws Exception {
    BytesStreamOutput bos = new BytesStreamOutput();

    XContentGenerator gen = XContentFactory.xContent(XContentType.JSON).createGenerator(bos);
    gen.writeStartObject();
    gen.writeStringField("name", "something");
    gen.flush();
    bos.write(", source : { test : \"value\" }".getBytes("UTF8"));
    gen.writeStringField("name2", "something2");
    gen.writeEndObject();
    gen.close();

    String sData = bos.bytes().utf8ToString();
    assertThat(sData, equalTo("{\"name\":\"something\", source : { test : \"value\" },\"name2\":\"something2\"}"));
}
项目:elasticsearch-xml    文件:XmlXContentGenerator.java   
public static void copyCurrentStructure(XContentGenerator generator, XContentParser parser) throws IOException {
    XContentParser.Token t = parser.currentToken();

    // Let's handle field-name separately first
    if (t == XContentParser.Token.FIELD_NAME) {
        generator.writeFieldName(parser.currentName());
        t = parser.nextToken();
        // fall-through to copy the associated value
    }

    switch (t) {
        case START_ARRAY:
            generator.writeStartArray();
            while (parser.nextToken() != XContentParser.Token.END_ARRAY) {
                copyCurrentStructure(generator, parser);
            }
            generator.writeEndArray();
            break;
        case START_OBJECT:
            generator.writeStartObject();
            while (parser.nextToken() != XContentParser.Token.END_OBJECT) {
                copyCurrentStructure(generator, parser);
            }
            generator.writeEndObject();
            break;
        default: // others are simple:
            copyCurrentEvent(generator, parser);
    }
}
项目:molgenis    文件:DocumentContentBuilder.java   
private void createRec(Entity entity, XContentGenerator generator, int depth, int maxDepth) throws IOException
{
    for (Attribute attr : entity.getEntityType().getAtomicAttributes())
    {
        generator.writeFieldName(documentIdGenerator.generateId(attr));
        createRec(entity, attr, generator, depth, maxDepth);
    }
}
项目:molgenis    文件:DocumentContentBuilder.java   
private void createRecReferenceAttribute(XContentGenerator generator, int depth, int maxDepth, Entity xrefEntity)
        throws IOException
{
    if (depth < maxDepth)
    {
        generator.writeStartObject();
        createRec(xrefEntity, generator, depth + 1, maxDepth);
        generator.writeEndObject();
    }
    else
    {
        Attribute xrefIdAttr = xrefEntity.getEntityType().getLabelAttribute();
        createRec(xrefEntity, xrefIdAttr, generator, depth + 1, maxDepth);
    }
}
项目:elasticsearch_my    文件:YamlXContent.java   
@Override
public XContentGenerator createGenerator(OutputStream os, Set<String> includes, Set<String> excludes) throws IOException {
    return new YamlXContentGenerator(yamlFactory.createGenerator(os, JsonEncoding.UTF8), os, includes, excludes);
}
项目:elasticsearch_my    文件:CborXContent.java   
@Override
public XContentGenerator createGenerator(OutputStream os, Set<String> includes, Set<String> excludes) throws IOException {
    return new CborXContentGenerator(cborFactory.createGenerator(os, JsonEncoding.UTF8), os, includes, excludes);
}
项目:elasticsearch_my    文件:JsonXContent.java   
@Override
public XContentGenerator createGenerator(OutputStream os, Set<String> includes, Set<String> excludes) throws IOException {
    return new JsonXContentGenerator(jsonFactory.createGenerator(os, JsonEncoding.UTF8), os, includes, excludes);
}
项目:elasticsearch_my    文件:SmileXContent.java   
@Override
public XContentGenerator createGenerator(OutputStream os, Set<String> includes, Set<String> excludes) throws IOException {
    return new SmileXContentGenerator(smileFactory.createGenerator(os, JsonEncoding.UTF8), os, includes, excludes);
}
项目:elasticsearch-xml    文件:XmlXContent.java   
@Override
public XContentGenerator createGenerator(OutputStream os) throws IOException {
    return new XmlXContentGenerator(xmlFactory.createGenerator(os, JsonEncoding.UTF8));
}
项目:elasticsearch-xml    文件:XmlXContent.java   
@Override
public XContentGenerator createGenerator(OutputStream os, String[] filters) throws IOException {
    // ignore filters (for now)
    return new XmlXContentGenerator(xmlFactory.createGenerator(os, JsonEncoding.UTF8));
}
项目:elasticsearch-xml    文件:XmlXContentGenerator.java   
public static void copyCurrentEvent(XContentGenerator generator, XContentParser parser) throws IOException {
    switch (parser.currentToken()) {
        case START_OBJECT:
            generator.writeStartObject();
            break;
        case END_OBJECT:
            generator.writeEndObject();
            break;
        case START_ARRAY:
            generator.writeStartArray();
            break;
        case END_ARRAY:
            generator.writeEndArray();
            break;
        case FIELD_NAME:
            generator.writeFieldName(parser.currentName());
            break;
        case VALUE_STRING:
            if (parser.hasTextCharacters()) {
                generator.writeString(parser.textCharacters(), parser.textOffset(), parser.textLength());
            } else {
                generator.writeString(parser.text());
            }
            break;
        case VALUE_NUMBER:
            switch (parser.numberType()) {
                case INT:
                    generator.writeNumber(parser.intValue());
                    break;
                case LONG:
                    generator.writeNumber(parser.longValue());
                    break;
                case FLOAT:
                    generator.writeNumber(parser.floatValue());
                    break;
                case DOUBLE:
                    generator.writeNumber(parser.doubleValue());
                    break;
            }
            break;
        case VALUE_BOOLEAN:
            generator.writeBoolean(parser.booleanValue());
            break;
        case VALUE_NULL:
            generator.writeNull();
            break;
        case VALUE_EMBEDDED_OBJECT:
            generator.writeBinary(parser.binaryValue());
    }
}
项目:elasticsearch-xml    文件:XmlXContentBuilder.java   
public XContentGenerator generator() {
    return this.generator;
}
项目:elasticsearch-rest-command    文件:CsvXContent.java   
@Override
public XContentGenerator createGenerator(OutputStream os)
        throws IOException {
     return new CsvXContentGenerator(csvFactory.createGenerator(os, JsonEncoding.UTF8));
}
项目:elasticsearch-rest-command    文件:CsvXContent.java   
@Override
public XContentGenerator createGenerator(Writer writer) throws IOException {
    return new CsvXContentGenerator(csvFactory.createGenerator(writer));
}
项目:elasticsearch-river-remote    文件:DocumentWithCommentsIndexStructureBuilderTest.java   
/**
 * Prepare {@link XContent} mock to be used for {@link XContentBuilder} test instance creation.
 * 
 * @param xContentGeneratorMock to be returned from XContent mock
 * @return XContent mock instance
 * @throws IOException
 */
protected XContent preparexContentMock(XContentGenerator xContentGeneratorMock) throws IOException {
    XContent xContentMock = mock(XContent.class);
    when(xContentMock.createGenerator(Mockito.any(OutputStream.class))).thenReturn(xContentGeneratorMock);
    return xContentMock;
}