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 serialize( final VPackBuilder builder, final String attribute, final Long value, final VPackSerializationContext context) throws VPackException { builder.add(attribute, value); } };
@Override public void serialize( final VPackBuilder builder, final String attribute, final Integer value, final VPackSerializationContext context) throws VPackException { builder.add(attribute, value); } };
@Override public void serialize( final VPackBuilder builder, final String attribute, final Short value, final VPackSerializationContext context) throws VPackException { builder.add(attribute, value); } };
@Override public void serialize( final VPackBuilder builder, final String attribute, final BigDecimal value, final VPackSerializationContext context) throws VPackException { builder.add(attribute, value); } };
public void writeTypeTo(final VPackBuilder sink, final Object alias) { if (this.typeKey != null) { sink.add(this.typeKey, alias.toString()); } }
@Override public void writeString(final String text) throws IOException { try { builder.add(attribute, text); attribute = null; } catch (final VPackBuilderException e) { throw new IOException(e); } }
@Override public void writeNumber(final BigInteger v) throws IOException { try { builder.add(attribute, v); attribute = null; } catch (final VPackBuilderException e) { throw new IOException(e); } }
@Override public void writeStartArray() throws IOException { try { builder.add(attribute, ValueType.ARRAY); attribute = null; } catch (final VPackBuilderException e) { throw new IOException(e); } }
@Override public void writeBoolean(final boolean state) throws IOException { try { builder.add(attribute, state); attribute = null; } catch (final VPackBuilderException e) { throw new IOException(e); } }
@Override public void writeRawUTF8String(final byte[] text, final int offset, final int length) throws IOException { try { builder.add(attribute, new String(text, offset, length)); attribute = null; } catch (final VPackBuilderException e) { throw new IOException(e); } }
@Override public void serialize( final VPackBuilder builder, final String attribute, final Timestamp value, final VPackSerializationContext context) throws VPackException { builder.add(attribute, DateUtil.format(value)); } };
@Override public void serialize( final VPackBuilder builder, final String attribute, final LogLevel value, final VPackSerializationContext context) throws VPackException { builder.add(attribute, value.getLevel()); } };
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 appendBinary(final byte[] value) { add((byte) 0xc3); append(value.length, INTEGER_BYTES); ensureCapacity(size + value.length); System.arraycopy(value, 0, buffer, size, value.length); size += value.length; }
private void writeBaseDocument( final String attribute, final BaseDocument source, final VPackBuilder sink, final TypeInformation<?> definedType) { final VPackBuilder builder = new VPackBuilder(); writeMap(attribute, source.getProperties(), builder, definedType); builder.add(_ID, source.getId()); builder.add(_KEY, source.getKey()); builder.add(_REV, source.getRevision()); sink.add(attribute, builder.slice()); }
@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 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 addKeyIfNecessary( final ArangoPersistentEntity<?> entity, final Object source, final VPackBuilder sink) { if (!entity.hasIdProperty() || entity.getIdentifierAccessor(source).getIdentifier() == null) { final Object id = entity.getArangoIdAccessor(source).getIdentifier(); if (id != null) { sink.add(_KEY, MetadataUtils.determineDocumentKeyFromId((String) id)); } } }