@Override
public Property<V> attach(final Graph hostGraph) {
final Element hostElement = (this.element() instanceof Vertex) ?
hostGraph.v(this.element().id()) :
hostGraph.e(this.element().id());
final Property<V> property = hostElement.property(this.isHidden() ? Graph.Key.hide(this.key) : this.key);
if (property.isPresent()) // && property.value().equals(this.value))
return property;
else
throw new IllegalStateException("The detached property could not be be found at the provided vertex: " + this);
}