Example usage for com.fasterxml.jackson.core JsonGenerator writeBoolean

List of usage examples for com.fasterxml.jackson.core JsonGenerator writeBoolean

Introduction

In this page you can find the example usage for com.fasterxml.jackson.core JsonGenerator writeBoolean.

Prototype

public abstract void writeBoolean(boolean state) throws IOException, JsonGenerationException;

Source Link

Document

Method for outputting literal Json boolean value (one of Strings 'true' and 'false').

Usage

From source file:org.apache.nifi.processors.elasticsearch.PutElasticsearchHttpRecord.java

@SuppressWarnings("unchecked")
private void writeValue(final JsonGenerator generator, final Object value, final String fieldName,
        final DataType dataType) throws IOException {
    if (value == null) {
        generator.writeNull();/*from w  ww .  ja  v  a 2 s.com*/
        return;
    }

    final DataType chosenDataType = dataType.getFieldType() == RecordFieldType.CHOICE
            ? DataTypeUtils.chooseDataType(value, (ChoiceDataType) dataType)
            : dataType;
    final Object coercedValue = DataTypeUtils.convertType(value, chosenDataType, fieldName);
    if (coercedValue == null) {
        generator.writeNull();
        return;
    }

    switch (chosenDataType.getFieldType()) {
    case DATE: {
        final String stringValue = DataTypeUtils.toString(coercedValue,
                () -> DataTypeUtils.getDateFormat(RecordFieldType.DATE.getDefaultFormat()));
        if (DataTypeUtils.isLongTypeCompatible(stringValue)) {
            generator.writeNumber(DataTypeUtils.toLong(coercedValue, fieldName));
        } else {
            generator.writeString(stringValue);
        }
        break;
    }
    case TIME: {
        final String stringValue = DataTypeUtils.toString(coercedValue,
                () -> DataTypeUtils.getDateFormat(RecordFieldType.TIME.getDefaultFormat()));
        if (DataTypeUtils.isLongTypeCompatible(stringValue)) {
            generator.writeNumber(DataTypeUtils.toLong(coercedValue, fieldName));
        } else {
            generator.writeString(stringValue);
        }
        break;
    }
    case TIMESTAMP: {
        final String stringValue = DataTypeUtils.toString(coercedValue,
                () -> DataTypeUtils.getDateFormat(RecordFieldType.TIMESTAMP.getDefaultFormat()));
        if (DataTypeUtils.isLongTypeCompatible(stringValue)) {
            generator.writeNumber(DataTypeUtils.toLong(coercedValue, fieldName));
        } else {
            generator.writeString(stringValue);
        }
        break;
    }
    case DOUBLE:
        generator.writeNumber(DataTypeUtils.toDouble(coercedValue, fieldName));
        break;
    case FLOAT:
        generator.writeNumber(DataTypeUtils.toFloat(coercedValue, fieldName));
        break;
    case LONG:
        generator.writeNumber(DataTypeUtils.toLong(coercedValue, fieldName));
        break;
    case INT:
    case BYTE:
    case SHORT:
        generator.writeNumber(DataTypeUtils.toInteger(coercedValue, fieldName));
        break;
    case CHAR:
    case STRING:
        generator.writeString(coercedValue.toString());
        break;
    case BIGINT:
        if (coercedValue instanceof Long) {
            generator.writeNumber((Long) coercedValue);
        } else {
            generator.writeNumber((BigInteger) coercedValue);
        }
        break;
    case BOOLEAN:
        final String stringValue = coercedValue.toString();
        if ("true".equalsIgnoreCase(stringValue)) {
            generator.writeBoolean(true);
        } else if ("false".equalsIgnoreCase(stringValue)) {
            generator.writeBoolean(false);
        } else {
            generator.writeString(stringValue);
        }
        break;
    case RECORD: {
        final Record record = (Record) coercedValue;
        final RecordDataType recordDataType = (RecordDataType) chosenDataType;
        final RecordSchema childSchema = recordDataType.getChildSchema();
        writeRecord(record, childSchema, generator);
        break;
    }
    case MAP: {
        final MapDataType mapDataType = (MapDataType) chosenDataType;
        final DataType valueDataType = mapDataType.getValueType();
        final Map<String, ?> map = (Map<String, ?>) coercedValue;
        generator.writeStartObject();
        for (final Map.Entry<String, ?> entry : map.entrySet()) {
            final String mapKey = entry.getKey();
            final Object mapValue = entry.getValue();
            generator.writeFieldName(mapKey);
            writeValue(generator, mapValue, fieldName + "." + mapKey, valueDataType);
        }
        generator.writeEndObject();
        break;
    }
    case ARRAY:
    default:
        if (coercedValue instanceof Object[]) {
            final Object[] values = (Object[]) coercedValue;
            final ArrayDataType arrayDataType = (ArrayDataType) dataType;
            final DataType elementType = arrayDataType.getElementType();
            writeArray(values, fieldName, generator, elementType);
        } else {
            generator.writeString(coercedValue.toString());
        }
        break;
    }
}

From source file:org.apache.olingo.client.core.serialization.JsonSerializer.java

protected void primitiveValue(final JsonGenerator jgen, final EdmTypeInfo typeInfo, final Object value)
        throws IOException, EdmPrimitiveTypeException {

    final EdmPrimitiveTypeKind kind = typeInfo == null ? null : typeInfo.getPrimitiveTypeKind();
    final boolean isNumber = kind == null ? value instanceof Number : ArrayUtils.contains(NUMBER_TYPES, kind);
    final boolean isBoolean = kind == null ? value instanceof Boolean : kind == EdmPrimitiveTypeKind.Boolean;

    if (value == null) {
        jgen.writeNull();//from   w  ww  . j  ava 2s  .c  om
    } else if (isBoolean) {
        jgen.writeBoolean((Boolean) value);
    } else {
        String serialized = kind == null ? value.toString()
                // TODO: add facets
                : EdmPrimitiveTypeFactory.getInstance(kind).valueToString(value, null, null,
                        Constants.DEFAULT_PRECISION, Constants.DEFAULT_SCALE, null);

        if (isIEEE754Compatible
                && (kind == EdmPrimitiveTypeKind.Int64 || kind == EdmPrimitiveTypeKind.Decimal)) {
            jgen.writeString(serialized);
        } else if (isNumber) {
            jgen.writeNumber(serialized);
        } else {
            jgen.writeString(serialized);
        }
    }
}

From source file:org.apache.olingo.commons.core.data.AbstractJsonSerializer.java

private void value(final JsonGenerator jgen, final String type, final Value value) throws IOException {
    final EdmTypeInfo typeInfo = type == null ? null
            : new EdmTypeInfo.Builder().setTypeExpression(type).build();

    if (value.isNull()) {
        jgen.writeNull();/*from   w ww  . j a  v a 2 s .c  o  m*/
    } else if (value.isSimple()) {
        final boolean isNumber = typeInfo == null ? NumberUtils.isNumber(value.asSimple().get())
                : ArrayUtils.contains(NUMBER_TYPES, typeInfo.getPrimitiveTypeKind());
        final boolean isBoolean = typeInfo == null
                ? (value.asSimple().get().equalsIgnoreCase(Boolean.TRUE.toString())
                        || value.asSimple().get().equalsIgnoreCase(Boolean.FALSE.toString()))
                : typeInfo.getPrimitiveTypeKind() == EdmPrimitiveTypeKind.Boolean;

        if (isNumber) {
            jgen.writeNumber(value.asSimple().get());
        } else if (isBoolean) {
            jgen.writeBoolean(BooleanUtils.toBoolean(value.asSimple().get()));
        } else {
            jgen.writeString(value.asSimple().get());
        }
    } else if (value.isGeospatial()) {
        jgen.writeStartObject();
        geoSerializer.serialize(jgen, value.asGeospatial().get());
        jgen.writeEndObject();
    } else if (value.isCollection()) {
        collection(jgen, typeInfo == null ? null : typeInfo.getFullQualifiedName().toString(),
                value.asCollection());
    } else if (value.isComplex()) {
        jgen.writeStartObject();
        for (Property property : value.asComplex().get()) {
            property(jgen, property, property.getName());
        }
        jgen.writeEndObject();
    }
}

From source file:org.apache.olingo.commons.core.serialization.JsonSerializer.java

protected void primitiveValue(final JsonGenerator jgen, final EdmTypeInfo typeInfo, final Object value)
        throws IOException, EdmPrimitiveTypeException {

    final EdmPrimitiveTypeKind kind = typeInfo == null ? null : typeInfo.getPrimitiveTypeKind();
    final boolean isNumber = kind == null ? value instanceof Number : ArrayUtils.contains(NUMBER_TYPES, kind);
    final boolean isBoolean = kind == null ? value instanceof Boolean : kind == EdmPrimitiveTypeKind.Boolean;

    if (value == null) {
        jgen.writeNull();/*w w w  .j av  a  2  s . c o  m*/
    } else if (isBoolean) {
        jgen.writeBoolean((Boolean) value);
    } else {
        final String serialized = kind == null ? value.toString()
                // TODO: add facets
                : EdmPrimitiveTypeFactory.getInstance(kind).valueToString(value, null, null,
                        Constants.DEFAULT_PRECISION, Constants.DEFAULT_SCALE, null);
        if (isNumber) {
            jgen.writeNumber(serialized);
        } else {
            jgen.writeString(serialized);
        }
    }
}

From source file:org.apache.olingo.server.core.serializer.json.ODataJsonSerializer.java

protected void writePrimitiveValue(final String name, final EdmPrimitiveType type, final Object primitiveValue,
        final Boolean isNullable, final Integer maxLength, final Integer precision, final Integer scale,
        final Boolean isUnicode, final JsonGenerator json) throws EdmPrimitiveTypeException, IOException {
    final String value = type.valueToString(primitiveValue, isNullable, maxLength, precision, scale, isUnicode);
    if (value == null) {
        json.writeNull();/*from  ww  w.j  ava2s  .c om*/
    } else if (type == EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Boolean)) {
        json.writeBoolean(Boolean.parseBoolean(value));
    } else if (type == EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Byte)
            || type == EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Double)
            || type == EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Int16)
            || type == EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Int32)
            || type == EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.SByte)
            || type == EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Single)
            || (type == EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Decimal)
                    || type == EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Int64))
                    && !isIEEE754Compatible) {
        json.writeNumber(value);
    } else if (type == EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Stream)) {
        if (primitiveValue instanceof Link) {
            Link stream = (Link) primitiveValue;
            if (!isODataMetadataNone) {
                if (stream.getMediaETag() != null) {
                    json.writeStringField(name + constants.getMediaEtag(), stream.getMediaETag());
                }
                if (stream.getType() != null) {
                    json.writeStringField(name + constants.getMediaContentType(), stream.getType());
                }
            }
            if (isODataMetadataFull) {
                if (stream.getRel() != null && stream.getRel().equals(Constants.NS_MEDIA_READ_LINK_REL)) {
                    json.writeStringField(name + constants.getMediaReadLink(), stream.getHref());
                }
                if (stream.getRel() == null || stream.getRel().equals(Constants.NS_MEDIA_EDIT_LINK_REL)) {
                    json.writeStringField(name + constants.getMediaEditLink(), stream.getHref());
                }
            }
        }
    } else {
        json.writeString(value);
    }
}

From source file:org.apache.syncope.core.misc.serialization.SyncTokenSerializer.java

@Override
public void serialize(final SyncToken source, final JsonGenerator jgen, final SerializerProvider sp)
        throws IOException {

    jgen.writeStartObject();//from  ww  w .  ja v  a  2 s  .  c o  m

    jgen.writeFieldName("value");

    if (source.getValue() == null) {
        jgen.writeNull();
    } else if (source.getValue() instanceof Boolean) {
        jgen.writeBoolean((Boolean) source.getValue());
    } else if (source.getValue() instanceof Double) {
        jgen.writeNumber((Double) source.getValue());
    } else if (source.getValue() instanceof Long) {
        jgen.writeNumber((Long) source.getValue());
    } else if (source.getValue() instanceof Integer) {
        jgen.writeNumber((Integer) source.getValue());
    } else if (source.getValue() instanceof byte[]) {
        jgen.writeString(Base64.encodeBase64String((byte[]) source.getValue()));
    } else {
        jgen.writeString(source.getValue().toString());
    }

    jgen.writeEndObject();
}

From source file:org.cloudcoder.dataanalysis.ProgsnapExport.java

private void writeJsonFieldValue(JsonGenerator jg, Object value) throws IOException {
    if (value instanceof String) {
        jg.writeString((String) value);
    } else if (value instanceof Integer) {
        jg.writeNumber(((Integer) value).intValue());
    } else if (value instanceof Long) {
        jg.writeNumber(((Long) value).longValue());
    } else if (value instanceof Double) {
        jg.writeNumber(((Double) value).doubleValue());
    } else if (value instanceof Map) {
        jg.writeStartObject();/*from w ww  . j ava 2s .  c o m*/
        for (Map.Entry<?, ?> entry : ((Map<?, ?>) value).entrySet()) {
            jg.writeFieldName(entry.getKey().toString());
            writeJsonFieldValue(jg, entry.getValue());
        }
        jg.writeEndObject();
    } else if (value instanceof Boolean) {
        jg.writeBoolean(((Boolean) value).booleanValue());
    } else {
        throw new IllegalArgumentException(
                "Don't know how to encode " + value.getClass().getSimpleName() + " as JSON value");
    }
}

From source file:org.fao.geonet.domain.SettingToObjectSerializer.java

public static void writeSettingValue(Setting s, JsonGenerator jsonGenerator) throws IOException {
    try {//from  ww w  . ja va  2  s  .c om
        if (StringUtils.isNotEmpty(s.getValue())) {
            if (s.getDataType() == SettingDataType.BOOLEAN) {
                jsonGenerator.writeBoolean(Boolean.parseBoolean(s.getValue()));
            } else if (s.getDataType() == SettingDataType.INT) {
                jsonGenerator.writeNumber(Integer.parseInt(s.getValue()));
            } else if (s.getDataType() == SettingDataType.JSON) {
                ObjectMapper mapper = new ObjectMapper();
                jsonGenerator.writeTree(mapper.readTree(s.getValue()));
            } else {
                jsonGenerator.writeString(s.getValue());
            }
        } else {
            jsonGenerator.writeNull();
        }
    } catch (Exception e) {
        jsonGenerator.writeNull();
        jsonGenerator.writeStringField("erroneousValue", s.getValue());
        jsonGenerator.writeStringField("error", e.getMessage());
    }
}