package org.jboss.windup.graph.model;
/**
* @author <a href="mailto:dklingenberg@gmail.com">David Klingenberg</a>
*/
public interface BelongsToProject
{
/**
* Checks if current model belongs to given project model
*
* @param projectModel
* @return true if model belongs to project model, otherwise false
*/
boolean belongsToProject(ProjectModel projectModel);
/**
* Gets all root project models for current model (This will be mostly 1, but there are few exceptions which have multiple project models, so it
* returns Iterable to keep interface consistent)
*
* @return root project models
*/
Iterable<ProjectModel> getRootProjectModels();
default ProjectModel getCanonicalProjectModel(ProjectModel projectModel)
{
ProjectModel canonicalProjectModel = projectModel;
if (projectModel instanceof DuplicateProjectModel)
{
canonicalProjectModel = ((DuplicateProjectModel) projectModel).getCanonicalProject();
}
return canonicalProjectModel;
}
}