}
void createPatchDriver(FrameWrapper patchEditor, String infoText,
IPatchDriver driver) throws IllegalAccessException,
NoSuchFieldException, IOException {
XmlPatchDriverSpecDocument document =
XmlPatchDriverSpecDocument.Factory.newInstance();
XmlPatchDriverSpec driverSpec = document.addNewXmlPatchDriverSpec();
XmlDriverDefs drivers = deviceSpec.getDrivers();
XmlDriverDef deviceDriverSpec = drivers.addNewXmlDriverDef();
deviceDriverSpec.setDriverClass(driver.getClass().getName());
deviceDriverSpec.setDriverType(XmlDriverDef.DriverType.PATCH);
addGenericFields(driver, driverSpec, infoText);
PatchParams patchParams = driverSpec.addNewPatchParams();
groupMap.put("", patchParams);
List<SysexWidget> sysexWidgets =
SysexWidgetFinder.findSysexWidgets(patchEditor);
if (sysexWidgets.size() > 0) {
for (SysexWidget sysexWidget : sysexWidgets) {
handleSysexWidget(patchEditor, sysexWidget);
}
properties.put(newDriverKey(), driver.getClass().getSimpleName());
document.save(new File(outDir, driver.getClass().getSimpleName()
+ ".xml"));
}
}