information-system-model/src/main/java/org/gcube/informationsystem/model/relation/RelationProperty.java

57 lines
1.3 KiB
Java

/**
*
*/
package org.gcube.informationsystem.model.relation;
import org.gcube.informationsystem.model.AccessPolicy;
/**
* @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/
*
*/
public interface RelationProperty {
/**
* @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/
* The referential integrity value have their meaning taking in account the
* Edge direction. So that is the action to be made when an action occurs on
* source Vertex.
*/
public enum ReferentiaIntegrity {
/**
* When the source Vertex is deleted also the target Vertex is deleted if
* there are no other incoming edge.
*/
onDeleteCascadeWhenOrphan,
/**
* When the source Vertex is deleted also the target Vertex is always
* deleted
*/
onDeleteCascade,
/**
* When the source Vertex is deleted also the target Vertex is keep.
* This is the standard behavior also if no integrity is declared.
*/
onDeleteKeep
}
public String getPurpose();
public void setPurpose(String purpose);
public ReferentiaIntegrity getReferentialIntegrity();
public void setReferentialIntegrity(ReferentiaIntegrity referentialIntegrity);
public AccessPolicy getPolicy();
public void setPolicy(AccessPolicy accessPolicy);
}