package org.neo4j.rdf.store.representation;
import org.neo4j.rdf.model.Statement;
/**
* Takes a statement and makes a representation of how it would look like in
* the node space.
*/
public interface RepresentationStrategy
{
/**
* Makes a representation of how {@code statement} would look like in
* the node space. The representation from the statement will be merged
* into {@code representation}.
* @param statement the {@link Statement} to make a representation of.
* @return the abstract representation which was passed in, now also filled
* with the abstract representation of the statement.
*/
AbstractRepresentation getAbstractRepresentation( Statement statement,
AbstractRepresentation representation );
/**
* @return a suitable {@link RepresentationExecutor} which is capable of
* handling the {@link AbstractRepresentation}s created in
* {@link #getAbstractRepresentation(Statement, AbstractRepresentation)}.
*/
RepresentationExecutor getExecutor();
}