package org.jboss.windup.tooling.data;
import java.io.File;
import java.io.Serializable;
import java.util.List;
/**
* This is a non-graph dependent analogue to {@link ClassificationModel} suitable for usage after the {@link GraphContext} itself has been closed.
*
* @author <a href="mailto:jesse.sightler@gmail.com">Jesse Sightler</a>
*/
public interface Classification extends Serializable
{
/**
* Gets the unique identifier of this classification.
*/
Object getID();
/**
* This is the {@link File} that this {@link Classification} refers to.
*/
File getFile();
/**
* Contains a description of this {@link Classification}. This is similar in concept to a title, and should be one sentence or less.
*/
String getClassification();
/**
* Contains a description of the file and any migration steps that may be necessary.
*/
String getDescription();
/**
* This contains a list of {@link Link}s for further information about the problem and its solution.
*/
List<Link> getLinks();
/**
* This contains a list of {@link Quickfix}s for follow up in tools
* @return
*/
List<Quickfix> getQuickfixes();
/**
* This contains the effort level as an integer (Story Points). This is based on the Scrum "modified-Fibonacci" system of effort estimation.
*/
int getEffort();
/**
* This is a hint as to the severity of the problem. This may be used for supplying an icon or glyph in the report to the user.
*/
IssueCategory getIssueCategory();
/**
* This contains the id of the rule that produced this {@link Classification}.
*/
String getRuleID();
}