package controller.merge.xmi.xclass; import java.util.ArrayList; public class MergeFactory { /*** * MergeFactory - Returns an instance of an Merge object depending on * the merging type. * */ private static MergeFactory mergeFac = null; private ArrayList<String> mergeLookUpTable = new ArrayList<String>(); private MergeFactory(){ mergeLookUpTable.add("xmiClassDiagram"); mergeLookUpTable.add("ecoreClassDiagram"); mergeLookUpTable.add("xmiSequenceDiagram"); } public static MergeFactory getInstance(){ if(mergeFac == null){ synchronized(MergeFactory.class){ if(mergeFac == null){ mergeFac = new MergeFactory(); } } } return mergeFac; } public MergerIntf createMerge(String diagramType) { MergerIntf merger = null; if (!mergeLookUpTable.contains(diagramType)) { return merger; } else { if(diagramType.equals("xmiClassDiagram")) { //merger = new XmiMergedClass(); } else if(diagramType.equals("ecoreClassDiagram")) { //merger = new EcoreMergedClass(); } else if(diagramType.equals("xmiSequenceDiagram")) { //merger = new SequenceMergedClass(); } } return merger; } }