package org.neo4j.rdf.validation; import java.util.Collection; import org.neo4j.graphdb.Node; import org.neo4j.meta.model.MetaModelClass; import org.neo4j.rdf.model.Uri; /** * All items which can be validated have to implement this interface. */ public interface Validatable { Node getUnderlyingNode(); Uri getUri(); /** * @return the node types for this entity. */ Collection<MetaModelClass> getClasses(); /** * @return all the property keys. */ String[] getAllPropertyKeys(); String[] getSimplePropertyKeys(); String[] getComplexPropertyKeys(); /** * @param key the property key. * @return wether or not this entity has the property {@code key}. */ boolean hasProperty( String key ); /** * @param key the property key. * @return the values for the property key. */ Object[] getProperties( String key ); /** * @param key the property key. * @param direction the direction. * @return the complex entities for key. */ Collection<? extends Validatable> complexProperties( String key ); }