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;
}