@Override public Property getProperty(String key, String name, Visibility visibility) { if (ID_PROPERTY_NAME.equals(name)) { return getIdProperty(); } else if (Edge.LABEL_PROPERTY_NAME.equals(name) && this instanceof Edge) { return getEdgeLabelProperty(); } for (Property p : getProperties()) { if (!p.getKey().equals(key)) { continue; } if (!p.getName().equals(name)) { continue; } if (visibility == null) { return p; } if (!visibility.equals(p.getVisibility())) { continue; } return p; } return null; }