package org.neo4j.meta.model;
import org.neo4j.graphdb.GraphDatabaseService;
/**
* The range of a property, i.e. a properties expected value type. F.ex. it
* could be a String, an integer or a {@link MetaModelClass} (which
* would refer to a {@link Node} which has a relationship to that class).
*/
public abstract class Range<T>
{
static final String KEY_RANGE_IMPL = "range_implementation_class";
protected MetaModelRestrictable<T> owner;
protected MetaModelRestrictable<T> getOwner()
{
return this.owner;
}
protected static GraphDatabaseService graphDb( MetaModel meta )
{
return ( ( MetaModelImpl ) meta ).graphDb();
}
protected abstract void internalStore( MetaModelRestrictable<T> owner );
protected abstract void internalRemove( MetaModelRestrictable<T> owner );
protected abstract void internalLoad( MetaModelRestrictable<T> owner );
protected abstract void store( MetaModelRestrictable<T> owner );
}