@Override
    protected Vertex readValue(final Buffer buffer, final GraphBinaryReader context) throws IOException {
        final Object id = context.read(buffer);
        // reading single string value for now according to GraphBinaryV4
        final String label = (String) context.readValue(buffer, List.class, false).get(0);
        final List<DetachedVertexProperty> properties = context.read(buffer);

        final DetachedVertex.Builder builder = DetachedVertex.build().setId(id).setLabel(label);

        if (properties != null) {
            for (final DetachedVertexProperty vp : properties) {
                builder.addProperty(vp);
            }
        }

        return builder.create();
    }
@author Stephen Mallette (http://stephen.genoprime.com)
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/binary/types/VertexSerializer.java