package org.jboss.windup.graph.model;
import com.tinkerpop.blueprints.Direction;
import com.tinkerpop.frames.Adjacency;
import com.tinkerpop.frames.modules.typedgraph.TypeValue;
/**
* Represents a {@link ProjectModel} that is actually an exact duplicate of another project.
*
* The duplicate will generally contain no files and the canonical project ({@see DuplicateProjectModel#getCanonicalProject})
* should be used for finding the included files.
*
* @author <a href="mailto:jesse.sightler@gmail.com">Jesse Sightler</a>
*/
@TypeValue(DuplicateProjectModel.TYPE)
public interface DuplicateProjectModel extends ProjectModel
{
String TYPE = "DuplicateProject";
String CANONICAL_PROJECT = TYPE + ":canonicalProject";
/**
* Contains a reference to the canonical (non-duplicated) project.
*/
@Adjacency(label = CANONICAL_PROJECT, direction = Direction.OUT)
ProjectModel getCanonicalProject();
/**
* Contains a reference to the canonical (non-duplicated) project.
*/
@Adjacency(label = CANONICAL_PROJECT, direction = Direction.OUT)
DuplicateProjectModel setCanonicalProject(ProjectModel original);
}