package edu.cmu.sv.arinc838.ui;
import edu.cmu.sv.arinc838.dao.SoftwareDefinitionFileDao;
import edu.cmu.sv.arinc838.reader.BdfReader;
import edu.cmu.sv.arinc838.reader.XdfReader;
import edu.cmu.sv.arinc838.ui.item.AbstractMenuItem;
import edu.cmu.sv.arinc838.ui.item.ExitItem;
import edu.cmu.sv.arinc838.ui.item.MenuItem;
import edu.cmu.sv.arinc838.ui.item.SaveItem;
import edu.cmu.sv.arinc838.ui.item.SdfReadItem;
import edu.cmu.sv.arinc838.writer.BdfWriter;
import edu.cmu.sv.arinc838.writer.XdfWriter;
public class ConversionMenu implements Menu{
private static final MenuItem[] items = new MenuItem[] {
new JoinedItem ("BDF -> XDF", new SdfReadItem("", new BdfReader()),
new SaveItem ("", new XdfWriter())),
new JoinedItem ("XDF -> BDF", new SdfReadItem("", new XdfReader()),
new SaveItem ("", new BdfWriter())),
new ExitItem()
};
private static class JoinedItem extends AbstractMenuItem {
private MenuItem first, second;
public JoinedItem (String prompt, MenuItem first, MenuItem second) {
super (prompt);
this.first = first;
this.second = second;
}
@Override
public MenuItem[] execute(SoftwareDefinitionFileDao sdfDao) throws Exception {
first.execute(sdfDao);
second.execute(sdfDao);
return null;
}
}
@Override
public MenuItem[] getItems() {
return items;
}
@Override
public String getHeader() {
return "Convert between XDF <-> BDF";
}
}