// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.plugins.fixAddresses;
import java.util.List;
public interface IProblem {
/**
* Gets the OSM entity which causes the problem.
*
* @return the source
*/
IOSMEntity getSource();
/**
* Gets the problem description.
*
* @return the description
*/
String getDescription();
/**
* Gets the problem type.
*
* @return the type
*/
ProblemType getType();
/**
* Gets the available solutions for this problem.
*
* @return the solutions
*/
List<ISolution> getSolutions();
/**
* Adds a possible solution to the problem.
*
* @param solution the solution
*/
void addSolution(ISolution solution);
/**
* Removes a solution from this problem.
*
* @param solution the solution
*/
void removeSolution(ISolution solution);
/**
* Removes all solutions from this problem.
*/
void clearSolutions();
/**
* Applies a {@link ISolution} instance on the problem.
*
* @param solution the solution
*/
void applySolution(ISolution solution);
}