/** {@inheritDoc} */ @Override protected void saveInternals(final File internDir, final ExecutionMonitor exec) throws IOException, CanceledExecutionException { // save m_muscle_map... ModelContent modelContent = new ModelContent("muscle-internals.model"); String[] keys = m_muscle_map.keySet().toArray(new String[0]); modelContent.addStringArray("internal-muscle-map-keys", keys); ModelContentWO subkey = modelContent.addModelContent("internal-muscle-map"); for (String key : keys) { subkey.addDataCell(key, m_muscle_map.get(key)); } // create the XML file alongside the rest of the node data (same folder) File file = new File(internDir, "muscle-internals.xml"); FileOutputStream fos = new FileOutputStream(file); modelContent.saveToXML(fos); }
/** {@inheritDoc} */ @Override protected void loadInternals(final File internDir, final ExecutionMonitor exec) throws IOException, CanceledExecutionException { File file = new File(internDir, "muscle-internals.xml"); FileInputStream fis = new FileInputStream(file); ModelContentRO modelContent = ModelContent.loadFromXML(fis); try { String[] keys = modelContent.getStringArray("internal-muscle-map-keys"); m_muscle_map.clear(); ModelContentRO subkey = modelContent.getModelContent("internal-muscle-map"); for (String key : keys) { DataCell dc = subkey.getDataCell(key); if (dc instanceof MultiAlignmentCell) { m_muscle_map.put(key, (MultiAlignmentCell) dc); } } fis.close(); } catch (InvalidSettingsException e) { throw new IOException(e.getMessage()); } }