code: @Override
  	public <V> Iterator<VertexProperty<V>> properties(String... propertyKeys) {
          ArrayList<VertexProperty<V>> ans = new ArrayList<VertexProperty<V>>();
  
          if (propertyKeys.length == 0) {
          	if (this.properties == null) return Collections.emptyIterator();
          	propertyKeys = this.properties.getPropertyKeys();
          }
  
          for (String key : propertyKeys) {
          	VertexProperty<V> prop = property(key);
              if (prop.isPresent()) ans.add(prop);
          }
          return ans.iterator();
  	}
docs: THERE ARE TWO MORE COPIES OF THIS CODE IN ELEMENT AND EDGE