package husacct.analyse.abstraction.export; import org.jdom2.Element; import husacct.ServiceProvider; import husacct.analyse.abstraction.dto.ClassDTO; import husacct.analyse.abstraction.dto.LibraryDTO; import husacct.analyse.abstraction.dto.PackageDTO; import husacct.common.dto.AbstractDTO; import husacct.common.dto.ApplicationDTO; import husacct.common.dto.DependencyDTO; import husacct.common.dto.UmlLinkDTO; import husacct.common.imexport.XmlConversionUtils; public class XmlFileExporterAnalysedModel { private Element analysisModelElement; private Element applicationElement; private Element packagesElement; private Element classesElement; private Element librariesElement; private Element dependenciesElement; private Element umlLinksElement; public XmlFileExporterAnalysedModel() { writeApplicationElement(); packagesElement = new Element("Packages"); classesElement = new Element("Classes"); librariesElement = new Element("Libraries"); dependenciesElement = new Element("Dependencies"); umlLinksElement = new Element("UmlLinks"); } private void writeApplicationElement() { ApplicationDTO applicationDTO = ServiceProvider.getInstance().getDefineService().getApplicationDetails(); applicationElement = new Element("Application"); applicationElement.addContent(new Element("ApplicationName").setText(applicationDTO.name)); } public void writePackageToXml(PackageDTO dto) { Element packageElement = writeDtoToXml("Package", dto); packagesElement.addContent(packageElement); } public void writeClassToXml(ClassDTO dto) { Element classElement = writeDtoToXml("Class", dto); classesElement.addContent(classElement); } public void writeLibraryToXml(LibraryDTO dto) { Element libraryElement = writeDtoToXml("Library", dto); librariesElement.addContent(libraryElement); } public void writeDependencyToXml(DependencyDTO dto) { Element dependencyElement = writeDtoToXml("Dependency", dto); dependenciesElement.addContent(dependencyElement); } public void writeUmlLinkToXml(UmlLinkDTO dto) { Element umlLinkElement = writeDtoToXml("UmlLink", dto); umlLinksElement.addContent(umlLinkElement); } public Element writeDtoToXml(String elementName, AbstractDTO dto) { return XmlConversionUtils.writeDtoToXml(elementName, dto); } public Element getXML() { analysisModelElement = new Element("AnalysisModel"); analysisModelElement.addContent(applicationElement); analysisModelElement.addContent(packagesElement); analysisModelElement.addContent(classesElement); analysisModelElement.addContent(librariesElement); analysisModelElement.addContent(dependenciesElement); analysisModelElement.addContent(umlLinksElement); return analysisModelElement; } public void writeToFile(String path) throws NoDataException { if (analysisModelElement.getChildren().size() <= 0 ) { throw new NoDataException(); } else { write(path); } } protected void write(String path) { } }