@Override
    public VertexProperty readVertexProperty(final InputStream inputStream,
                                             final Function<Attachable<VertexProperty>, VertexProperty> vertexPropertyAttachMethod) throws IOException {
        final Input input = new Input(inputStream);
        readHeader(input);
        final Attachable<VertexProperty> attachable = kryo.readObject(input, DetachedVertexProperty.class);
        return vertexPropertyAttachMethod.apply(attachable);
    }
Read a {@link VertexProperty} from output generated by
{@link GryoWriter#writeVertexProperty(OutputStream, VertexProperty)} or via an {@link VertexProperty} passed
to {@link GryoWriter#writeObject(OutputStream, Object)}.

@param inputStream                a stream containing at least one {@link VertexProperty} as written by the accompanying
                                  {@link GraphWriter#writeVertexProperty(OutputStream, VertexProperty)} method.
@param vertexPropertyAttachMethod a function that creates re-attaches a {@link VertexProperty} to a
                                  {@link Host} object.
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoReader.java