package com.tibco.as.spacebar.ui.wizards.transfer.simulation; import java.io.File; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBElement; import javax.xml.bind.JAXBException; import javax.xml.bind.Unmarshaller; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.osgi.util.NLS; import com.tibco.as.spacebar.ui.Image; import com.tibco.as.spacebar.ui.SpaceBarPlugin; import com.tibco.as.spacebar.ui.preferences.Preferences; import com.tibco.as.spacebar.ui.wizards.transfer.AbstractImportWizard; import com.tibco.as.io.IMetaspaceTransfer; import com.tibco.as.io.AbstractImport; import com.tibco.as.io.AbstractTransfer; import com.tibco.as.simulator.ObjectFactory; import com.tibco.as.simulator.Simulation; import com.tibco.as.simulator.SimulationImport; import com.tibco.as.simulator.SimulationImporter; import com.tibco.as.space.Metaspace; public class SimulationImportWizard extends AbstractImportWizard<Object[]> { public SimulationImportWizard() { super("SimulationImportWizard", Image.WIZBAN_SIMULATION); } @Override protected AbstractTransfer createTransfer() { SimulationImport config = new SimulationImport(); Preferences.configureImport(config); return config; } @Override protected Collection<IMetaspaceTransfer> getImporters(List<File> files, AbstractImport defaultImport) { Map<String, Metaspace> metaspaces = getConnectedMetaspaces(); Collection<IMetaspaceTransfer> importers = new ArrayList<IMetaspaceTransfer>(); for (File file : files) { Simulation simulation; try { simulation = getSimulation(file); } catch (JAXBException e) { SpaceBarPlugin.errorDialog(getShell(), NLS.bind( "Could not load simulation file ''{0}''", file), e); continue; } String metaspaceName = simulation.getMetaspace(); Metaspace metaspace = metaspaces.containsKey(metaspaceName) ? metaspaces .get(metaspaceName) : metaspaces.values().iterator().next(); SimulationImporter importer = new SimulationImporter(metaspace, simulation); importer.setDefaultTransfer(defaultImport); importers.add(importer); } return importers; } @Override protected SimulationImportMainPage getMainPage( IStructuredSelection selection) { return new SimulationImportMainPage(); } private Simulation getSimulation(File file) throws JAXBException { JAXBContext jc = JAXBContext.newInstance(ObjectFactory.class); Unmarshaller unmarshaller = jc.createUnmarshaller(); @SuppressWarnings("unchecked") JAXBElement<Simulation> element = (JAXBElement<Simulation>) unmarshaller .unmarshal(file); return element.getValue(); } }