package controller.diagramparser; import java.util.ArrayList; import java.util.List; import domain.CD_Attribute; import domain.CD_Class; import domain.CD_Relationship; import domain.Diagram; import controller.comparer.xmi.*; import controller.upload.FileInfo; import controller.upload.UploadProcessorFactory; import controller.util.FileUtil; public class XMIClassDiagramParser extends ClassDiagramParser{ XmiClassDiagramParser oldParser; private String umlFile; private String notationFile; public XMIClassDiagramParser (Diagram diagramObj){ super(diagramObj); System.out.println("context Path: " + diagramObj.getConPath()); setXmiFilePath(diagramObj); oldParser = new XmiClassDiagramParser(getUmlFile(), getNotationFile()); } @Override public List<CD_Class> getClasses() { List<CD_Class> finalClassList = new ArrayList<CD_Class>(); List<XmiClassElement> classes = oldParser.getClassElements(); for(XmiClassElement xmiClass : classes) { CD_Class tmpClass = new CD_Class(xmiClass); xmiClass.getGeneralization(); // XmiGeneralizationElement genName = xmiClass.getGeneralization().get(0); // System.out.println("Super Class: " + genName); finalClassList.add(tmpClass); } return finalClassList; } @Override public List<CD_Attribute> getAtrributes() { // TODO Add code to fetch data from legacy XMI parser return null; } @Override public List<CD_Relationship> getRelationships() { // TODO Add code to fetch data from legacy XMI parser return null; } public void setXmiFilePath(Diagram diagramObj) { // to get the .uml file names: String UmlFileName = diagramObj.getFilePath().substring( diagramObj.getFilePath().lastIndexOf("/") + 1, diagramObj.getFilePath().length()); // to get the UML path without the file names: String UmlPath = diagramObj.getFilePath().substring(0, diagramObj.getFilePath().lastIndexOf("/") + 1); List<FileInfo> fileInfoList = new ArrayList<FileInfo>(); String notationFilePath = diagramObj.getNotationFilePath().replaceAll("\\\\", "/"); FileInfo fi1_not = new FileInfo(diagramObj.getConPath() + diagramObj.getNotationFilePath(), diagramObj.getNotationFileName(), ""); FileInfo fi1_uml = new FileInfo(diagramObj.getConPath() + UmlPath, UmlFileName, ""); fileInfoList.add(fi1_not); fileInfoList.add(fi1_uml); FileInfo classDiagramNotation = FileUtil.getFile( UploadProcessorFactory.NOTATION_EXTENSION, fileInfoList); FileInfo classDiagramUml = FileUtil.getFile( UploadProcessorFactory.UML_EXTENSION, fileInfoList); umlFile = classDiagramUml.getDestFilePath() + classDiagramUml.getFileName(); notationFile = classDiagramNotation.getDestFilePath() + classDiagramNotation.getFileName(); System.out.println("Uml File: " + umlFile); System.out.println("Notation File: " + notationFile); } public String getUmlFile() { return umlFile; } public String getNotationFile() { return notationFile; } }