private String mapToJson(Map<String, ByteIterator> values) { VPackBuilder builder = new VPackBuilder().add(ValueType.OBJECT); for (Map.Entry<String, ByteIterator> entry : values.entrySet()) { builder.add(entry.getKey(), byteIteratorToString(entry.getValue())); } builder.close(); return arangoDB.util().deserialize(builder.slice(), String.class); }
@Override public void writeEndObject() throws IOException { try { builder.close(); } catch (final VPackBuilderException e) { throw new IOException(e); } }
@Override public void writeEndArray() throws IOException { try { builder.close(); } catch (final VPackBuilderException e) { throw new IOException(e); } }
private void serializeIterable(final String name, final Object value, final VPackBuilder builder, final Type type) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, VPackException { builder.add(name, ValueType.ARRAY); for (final Iterator iterator = Iterable.class.cast(value).iterator(); iterator.hasNext();) { final Object element = iterator.next(); final Type t = type != null ? type : element != null ? element.getClass() : null; addValue(null, t, element, builder, null, Collections.<String, Object> emptyMap()); } builder.close(); }
private void serializeArray(final String name, final Object value, final VPackBuilder builder) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, VPackException { builder.add(name, ValueType.ARRAY); for (int i = 0; i < Array.getLength(value); i++) { final Object element = Array.get(value, i); if (element != null) { addValue(null, element.getClass(), element, builder, null, Collections.<String, Object> emptyMap()); } else { builder.add(ValueType.NULL); } } builder.close(); }
public VPackBuilder close() throws VPackBuilderException { try { return close(true); } catch (final VPackKeyTypeException e) { throw new VPackBuilderException(e); } catch (final VPackNeedAttributeTranslatorException e) { throw new VPackBuilderException(e); } }
private void writeReferences(final String attribute, final Object source, final VPackBuilder sink) { sink.add(attribute, ValueType.ARRAY); if (source.getClass().isArray()) { for (int i = 0; i < Array.getLength(source); ++i) { final Object element = Array.get(source, i); writeReference(null, element, sink); } } else { for (final Object element : asCollection(source)) { writeReference(null, element, sink); } } sink.close(); }
private void writeMap( final String attribute, final Map<? extends Object, ? extends Object> source, final VPackBuilder sink, final TypeInformation<?> definedType) { sink.add(attribute, ValueType.OBJECT); for (final Entry<? extends Object, ? extends Object> entry : source.entrySet()) { final Object key = entry.getKey(); final Object value = entry.getValue(); writeInternal(convertId(key), value, sink, getNonNullMapValueType(definedType)); } sink.close(); }
private void writeReferences(final String attribute, final Object source, final VPackBuilder sink) { sink.add(attribute, ValueType.ARRAY); if (source.getClass().isArray()) { for (int i = 0; i < Array.getLength(source); ++i) { final Object element = Array.get(source, i); writeReference(null, element, sink); } } else { for (final Object element : asCollection(source)) { writeReference(null, element, sink); } } sink.close(); }
private void writeMap( final String attribute, final Map<? extends Object, ? extends Object> source, final VPackBuilder sink, final TypeInformation<?> definedType) { sink.add(attribute, ValueType.OBJECT); for (final Entry<? extends Object, ? extends Object> entry : source.entrySet()) { final Object key = entry.getKey(); final Object value = entry.getValue(); writeInternal(convertId(key), value, sink, getNonNullMapValueType(definedType)); } sink.close(); }
private void serializeObject( final String name, final Object entity, final VPackBuilder builder, final Map<String, Object> additionalFields) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, VPackException { final Class<? extends Object> type = entity.getClass(); final VPackSerializer<?> serializer = getSerializer(type); if (serializer != null) { ((VPackSerializer<Object>) serializer).serialize(builder, name, entity, serializationContext); } else { builder.add(name, ValueType.OBJECT); serializeFields(entity, builder, additionalFields); if (!additionalFields.isEmpty()) { builder.close(true); } else { builder.close(false); } } }
private void writeArray( final String attribute, final Object source, final VPackBuilder sink, final TypeInformation<?> definedType) { if (byte[].class.equals(source.getClass())) { sink.add(attribute, Base64Utils.encodeToString((byte[]) source)); } else { sink.add(attribute, ValueType.ARRAY); for (int i = 0; i < Array.getLength(source); ++i) { final Object element = Array.get(source, i); writeInternal(null, element, sink, getNonNullComponentType(definedType)); } sink.close(); } }
@Override public void serialize( final VPackBuilder builder, final String attribute, final ArangoSearchPropertiesOptions value, final VPackSerializationContext context) throws VPackException { builder.add(ValueType.OBJECT); context.serialize(builder, attribute, value.getProperties()); builder.close(); } };
private void writeArray( final String attribute, final Object source, final VPackBuilder sink, final TypeInformation<?> definedType) { if (byte[].class.equals(source.getClass())) { sink.add(attribute, Base64Utils.encodeToString((byte[]) source)); } else { sink.add(attribute, ValueType.ARRAY); for (int i = 0; i < Array.getLength(source); ++i) { final Object element = Array.get(source, i); writeInternal(null, element, sink, getNonNullComponentType(definedType)); } sink.close(); } }
@Override public void seal() throws VPackException { if (builder == null) { return; } builder.close(); final VPackSlice slice = builder.slice(); for (int i = 0; i < slice.getLength(); i++) { final VPackSlice key = slice.keyAt(i); final VPackSlice value = slice.valueAt(i); attributeToKey.put(key.getAsString(), value); keyToAttribute.put(value.getAsInt(), key); } }
private void writeCollection( final String attribute, final Object source, final VPackBuilder sink, final TypeInformation<?> definedType) { sink.add(attribute, ValueType.ARRAY); for (final Object entry : asCollection(source)) { writeInternal(null, entry, sink, getNonNullComponentType(definedType)); } sink.close(); }
private void writeCollection( final String attribute, final Object source, final VPackBuilder sink, final TypeInformation<?> definedType) { sink.add(attribute, ValueType.ARRAY); for (final Object entry : asCollection(source)) { writeInternal(null, entry, sink, getNonNullComponentType(definedType)); } sink.close(); }
@Override public void serialize( final VPackBuilder builder, final String attribute, final Request value, final VPackSerializationContext context) throws VPackException { builder.add(attribute, ValueType.ARRAY); builder.add(value.getVersion()); builder.add(value.getType()); builder.add(value.getDatabase()); builder.add(value.getRequestType().getType()); builder.add(value.getRequest()); builder.add(ValueType.OBJECT); for (final Entry<String, String> entry : value.getQueryParam().entrySet()) { builder.add(entry.getKey(), entry.getValue()); } builder.close(); builder.add(ValueType.OBJECT); for (final Entry<String, String> entry : value.getHeaderParam().entrySet()) { builder.add(entry.getKey(), entry.getValue()); } builder.close(); builder.close(); } };
public VPackSlice fromJson(final Iterable<String> jsons, final boolean includeNullValues) throws VPackException { final VPackBuilder builder = new VPackBuilder(); try { builder.add(ValueType.ARRAY); for (final String json : jsons) { parse(json, builder, includeNullValues); } } catch (final JsonParseException e) { throw new VPackBuilderException(e); } catch (final IOException e) { throw new VPackBuilderException(e); } builder.close(); return builder.slice(); }
@Override public void serialize( final VPackBuilder builder, final String attribute, final AuthenticationRequest value, final VPackSerializationContext context) throws VPackException { builder.add(attribute, ValueType.ARRAY); builder.add(value.getVersion()); builder.add(value.getType()); builder.add(value.getEncryption()); builder.add(value.getUser()); builder.add(value.getPassword()); builder.close(); } };