ArchiMateExportExtension.java
package com.taxonomy.export.service;
import com.taxonomy.archimate.ArchiMateModel;
import com.taxonomy.export.ArchiMateDiagramService;
import com.taxonomy.archimate.exchange.ArchiMateXmlExporter;
import com.taxonomy.export.spi.ExportContext;
import com.taxonomy.export.spi.ExportFormatDescriptor;
import com.taxonomy.export.spi.ExportFormatExtension;
import com.taxonomy.export.spi.ExportResult;
import org.springframework.stereotype.Component;
/** Spring adapter for ArchiMate XML output. */
@Component
public class ArchiMateExportExtension implements ExportFormatExtension {
public static final String FORMAT_ID = "archimate";
private static final ExportFormatDescriptor DESCRIPTOR = new ExportFormatDescriptor(
FORMAT_ID, "ArchiMate XML", "xml", "application/xml", false);
private final ArchiMateDiagramService archiMateDiagramService;
private final ArchiMateXmlExporter archiMateXmlExporter;
public ArchiMateExportExtension(ArchiMateDiagramService archiMateDiagramService,
ArchiMateXmlExporter archiMateXmlExporter) {
this.archiMateDiagramService = archiMateDiagramService;
this.archiMateXmlExporter = archiMateXmlExporter;
}
@Override
public ExportFormatDescriptor descriptor() {
return DESCRIPTOR;
}
@Override
public ExportResult export(ExportContext context) {
ArchiMateModel model = archiMateDiagramService.convert(context.diagram());
return new ExportResult(archiMateXmlExporter.export(model));
}
}