Search in sources :

Example 31 with BeanInner

use of sqlite.kripton58.BeanInner in project kripton by xcesco.

the class BeanBeanTable method serializeValue2.

/**
 * for attribute value2 serialization
 */
public static byte[] serializeValue2(LinkedList<BeanInner> value) {
    if (value == null) {
        return null;
    }
    KriptonJsonContext context = KriptonBinder.jsonBind();
    try (KriptonByteArrayOutputStream stream = new KriptonByteArrayOutputStream();
        JacksonWrapperSerializer wrapper = context.createSerializer(stream)) {
        JsonGenerator jacksonSerializer = wrapper.jacksonGenerator;
        jacksonSerializer.writeStartObject();
        int fieldCount = 0;
        if (value != null) {
            fieldCount++;
            int n = value.size();
            BeanInner item;
            // write wrapper tag
            jacksonSerializer.writeFieldName("element");
            jacksonSerializer.writeStartArray();
            for (int i = 0; i < n; i++) {
                item = value.get(i);
                if (item == null) {
                    jacksonSerializer.writeNull();
                } else {
                    beanInnerBindMap.serializeOnJackson(item, jacksonSerializer);
                }
            }
            jacksonSerializer.writeEndArray();
        }
        jacksonSerializer.writeEndObject();
        jacksonSerializer.flush();
        return stream.toByteArray();
    } catch (Exception e) {
        throw (new KriptonRuntimeException(e.getMessage()));
    }
}
Also used : BeanInner(sqlite.kripton58.BeanInner) JsonGenerator(com.fasterxml.jackson.core.JsonGenerator) KriptonRuntimeException(com.abubusoft.kripton.exception.KriptonRuntimeException) KriptonByteArrayOutputStream(com.abubusoft.kripton.common.KriptonByteArrayOutputStream) KriptonJsonContext(com.abubusoft.kripton.KriptonJsonContext) JacksonWrapperSerializer(com.abubusoft.kripton.persistence.JacksonWrapperSerializer) KriptonRuntimeException(com.abubusoft.kripton.exception.KriptonRuntimeException)

Example 32 with BeanInner

use of sqlite.kripton58.BeanInner in project kripton by xcesco.

the class BeanDaoImpl method parser2.

/**
 * for param parser2 parsing
 */
private List<BeanInner> parser2(byte[] input) {
    if (input == null) {
        return null;
    }
    KriptonJsonContext context = KriptonBinder.jsonBind();
    try (JacksonWrapperParser wrapper = context.createParser(input)) {
        JsonParser jacksonParser = wrapper.jacksonParser;
        // START_OBJECT
        jacksonParser.nextToken();
        // value of "element"
        jacksonParser.nextValue();
        List<BeanInner> result = null;
        if (jacksonParser.currentToken() == JsonToken.START_ARRAY) {
            ArrayList<BeanInner> collection = new ArrayList<>();
            BeanInner item = null;
            while (jacksonParser.nextToken() != JsonToken.END_ARRAY) {
                if (jacksonParser.currentToken() == JsonToken.VALUE_NULL) {
                    item = null;
                } else {
                    item = beanInnerBindMap.parseOnJackson(jacksonParser);
                }
                collection.add(item);
            }
            result = collection;
        }
        return result;
    } catch (Exception e) {
        throw (new KriptonRuntimeException(e.getMessage()));
    }
}
Also used : BeanInner(sqlite.kripton58.BeanInner) ArrayList(java.util.ArrayList) KriptonRuntimeException(com.abubusoft.kripton.exception.KriptonRuntimeException) KriptonJsonContext(com.abubusoft.kripton.KriptonJsonContext) JacksonWrapperParser(com.abubusoft.kripton.persistence.JacksonWrapperParser) KriptonRuntimeException(com.abubusoft.kripton.exception.KriptonRuntimeException) JsonParser(com.fasterxml.jackson.core.JsonParser)

Example 33 with BeanInner

use of sqlite.kripton58.BeanInner in project kripton by xcesco.

the class BeanDaoImpl method serializer2.

/**
 * for param serializer2 serialization
 */
private byte[] serializer2(List<BeanInner> value) {
    if (value == null) {
        return null;
    }
    KriptonJsonContext context = KriptonBinder.jsonBind();
    try (KriptonByteArrayOutputStream stream = new KriptonByteArrayOutputStream();
        JacksonWrapperSerializer wrapper = context.createSerializer(stream)) {
        JsonGenerator jacksonSerializer = wrapper.jacksonGenerator;
        int fieldCount = 0;
        jacksonSerializer.writeStartObject();
        if (value != null) {
            int n = value.size();
            BeanInner item;
            // write wrapper tag
            jacksonSerializer.writeFieldName("element");
            jacksonSerializer.writeStartArray();
            for (int i = 0; i < n; i++) {
                item = value.get(i);
                if (item == null) {
                    jacksonSerializer.writeNull();
                } else {
                    beanInnerBindMap.serializeOnJackson(item, jacksonSerializer);
                }
            }
            jacksonSerializer.writeEndArray();
        }
        jacksonSerializer.writeEndObject();
        jacksonSerializer.flush();
        return stream.toByteArray();
    } catch (Exception e) {
        throw (new KriptonRuntimeException(e.getMessage()));
    }
}
Also used : BeanInner(sqlite.kripton58.BeanInner) JsonGenerator(com.fasterxml.jackson.core.JsonGenerator) KriptonRuntimeException(com.abubusoft.kripton.exception.KriptonRuntimeException) KriptonByteArrayOutputStream(com.abubusoft.kripton.common.KriptonByteArrayOutputStream) KriptonJsonContext(com.abubusoft.kripton.KriptonJsonContext) JacksonWrapperSerializer(com.abubusoft.kripton.persistence.JacksonWrapperSerializer) KriptonRuntimeException(com.abubusoft.kripton.exception.KriptonRuntimeException)

Aggregations

BeanInner (sqlite.kripton58.BeanInner)33 KriptonJsonContext (com.abubusoft.kripton.KriptonJsonContext)18 KriptonRuntimeException (com.abubusoft.kripton.exception.KriptonRuntimeException)18 ArrayList (java.util.ArrayList)14 KriptonByteArrayOutputStream (com.abubusoft.kripton.common.KriptonByteArrayOutputStream)9 JacksonWrapperParser (com.abubusoft.kripton.persistence.JacksonWrapperParser)9 JacksonWrapperSerializer (com.abubusoft.kripton.persistence.JacksonWrapperSerializer)9 JsonGenerator (com.fasterxml.jackson.core.JsonGenerator)9 JsonParser (com.fasterxml.jackson.core.JsonParser)9 LinkedList (java.util.LinkedList)3