package com.tinkerpop.gremlin.structure;

import com.tinkerpop.gremlin.structure.util.EmptyMetaProperty;

import java.util.Iterator;

/**
 * @author Matthias Broecheler (me@matthiasb.com)
 * @author Marko A. Rodriguez (http://markorodriguez.com)
 */
public interface MetaProperty<V> extends Property<V>, Element {

    public static final String META_PROPERTY = "metaProperty";
    public static final String VALUE = "value";
    public static final String KEY = "key";

    public Vertex getElement();

    public default String label() {
        return META_PROPERTY;
    }

    public static <V> MetaProperty<V> empty() {
        return EmptyMetaProperty.instance();
    }

    public MetaProperty.Iterators iterators();

    public interface Iterators extends Element.Iterators {

        public <U> Iterator<Property<U>> properties(final String... propertyKeys);

        public <U> Iterator<Property<U>> hiddens(final String... propertyKeys);
    }

}

@@ -464,16 +464,30 @@
 %22key%22;%0A%0A
+    @Override%0A
     publ
@@ -507,24 +507,38 @@
 Element();%0A%0A
+    @Override%0A
     public d
@@ -690,32 +690,46 @@
 tance();%0A    %7D%0A%0A
+    @Override%0A
     public MetaP
@@ -816,24 +816,42 @@
 terators %7B%0A%0A
+        @Override%0A
         publ
@@ -918,24 +918,42 @@
 ertyKeys);%0A%0A
+        @Override%0A
         publ

Add override annotations.