class HugeVertexProperty<V> extends HugeProperty<V>
        implements VertexProperty<V> {

    public HugeVertexProperty(HugeElement owner, PropertyKey key, V value) {
        super(owner, key, value);
    }

    @Override
    public HugeType type() {
        return this.pkey.aggregateType().isNone() ?
               HugeType.PROPERTY : HugeType.AGGR_PROPERTY_V;
    }

    @Override
    public <U> Property<U> property(String key, U value) {
        throw new NotSupportException("nested property");
    }

    @Override
    public HugeVertex element() {
        assert this.owner instanceof HugeVertex;
        return (HugeVertex) this.owner;
    }

    @Override
    public void remove() {
        assert this.owner instanceof HugeVertex;
        VertexLabel vertexLabel = ((HugeVertex) this.owner).schemaLabel();
        E.checkArgument(vertexLabel.nullableKeys().contains(
                                this.propertyKey().id()),
                        "Can't remove non-null vertex property '%s'", this);
        this.owner.graph().removeVertexProperty(this);
    }

    @Override
    public <U> Iterator<Property<U>> properties(String... propertyKeys) {
        throw new NotSupportException("nested property");
    }

    @Override
    public boolean equals(Object obj) {<FILL_FUNCTION_BODY>}

    @Override
    public int hashCode() {
        return ElementHelper.hashCode((Element) this);
    }
}

        if (!(obj instanceof VertexProperty)) {
            return false;
        }
        @SuppressWarnings("unchecked")
        VertexProperty<V> other = (VertexProperty<V>) obj;
        return this.id().equals(other.id());
    
<methods>public void <init>(org.apache.hugegraph.structure.HugeElement, org.apache.hugegraph.schema.PropertyKey, V) ,public org.apache.hugegraph.structure.HugeElement element() ,public boolean equals(java.lang.Object) ,public int hashCode() ,public java.lang.Object id() ,public boolean isAggregateType() ,public boolean isPresent() ,public java.lang.String key() ,public java.lang.String name() ,public org.apache.hugegraph.schema.PropertyKey propertyKey() ,public java.lang.Object serialValue(boolean) ,public java.lang.String toString() ,public org.apache.hugegraph.type.HugeType type() ,public V value() throws java.util.NoSuchElementException<variables>protected final non-sealed org.apache.hugegraph.structure.HugeElement owner,protected final non-sealed org.apache.hugegraph.schema.PropertyKey pkey,protected final non-sealed V value