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

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