package org.vertexium; import org.vertexium.util.FilterIterable; public abstract class GraphMetadataStore { public abstract Iterable<GraphMetadataEntry> getMetadata(); public abstract void setMetadata(String key, Object value); public Object getMetadata(String key) { for (GraphMetadataEntry e : getMetadata()) { if (e.getKey().equals(key)) { return e.getValue(); } } return null; } public Iterable<GraphMetadataEntry> getMetadataWithPrefix(final String prefix) { return new FilterIterable<GraphMetadataEntry>(getMetadata()) { @Override protected boolean isIncluded(GraphMetadataEntry o) { return o.getKey().startsWith(prefix); } }; } }