package controller.compare;
import java.util.ArrayList;
public class ComparerProvider {
private static ComparerProvider instance = null;
private ArrayList<String> comparerLookUpTable = new ArrayList<String>();
private ComparerProvider(){
comparerLookUpTable.add("xmiClassDiagram");
comparerLookUpTable.add("ecoreClassDiagram");
comparerLookUpTable.add("xmiSequenceDiagram");
}
public static ComparerProvider getInstance(){
if(instance == null){
synchronized(ComparerProvider.class){
if(instance == null){
instance = new ComparerProvider();
}
}
}
return instance;
}
public ComparerIntf createComparer(String diagramType)
{
ComparerIntf comparer = null;
if (!comparerLookUpTable.contains(diagramType))
{
return comparer;
}
else
{
if(diagramType.equals("xmiClassDiagram"))
{
comparer = new XmiClassDiagramComparer();
}
else if(diagramType.equals("ecoreClassDiagram"))
{
comparer = new EcoreClassDiagramComparer();
}
else if(diagramType.equals("xmiSequenceDiagram"))
{
comparer = new SequenceDiagramComparer();
}
}
return comparer;
}
}