package ome.formats.test.util; import java.io.File; import java.util.prefs.BackingStoreException; import org.ini4j.IniFile; class TestEngineIniFile extends IniFile { private boolean populate = true; public TestEngineIniFile(File file) throws BackingStoreException { super(file, Mode.RW); } public String[] getFileList() { try { return childrenNames(); } catch (BackingStoreException e) { // TODO Auto-generated catch block e.printStackTrace(); throw new RuntimeException("Unimplemented exception."); } } public void addFile(String fileName) { node(fileName); } public String getNote(String file) { return node(file).get("note", null); } public String[] getFileTypes() { String[] types = null; String fileTypes = node("populate_options").get("filetypes", null); if (fileTypes != null) { types = fileTypes.split(","); for (int i = 0; i<types.length; i++) { types[i] = types[i].trim(); } } return types; } // Test a string value, setting new values if existing one in the ini file is empty /** * @param section * @param key * @param value - can be string or common primitive that accepts toString() method */ public void testValue(String section, String key, Object value) { if (value != null && !(value instanceof String)) { value = value.toString(); } if (value != null && value.toString().length() > 255) { value = value.toString().substring(0, 252) + "..."; } String storedValue = node(section).get(key, null); if ((storedValue == null || populate == true) && value != null) { System.err.println("Storing value for " + section + ": key=" + key + ", value=: " + value); node(section).put(key, (String) value); } else if ((value!= null && !storedValue.equals(value)) || (value == null && storedValue != null)) { System.err.println("Value mismatch in " + section + ": key=" + key + ", stored value=" + storedValue + " new value=" + value); } else if (value == null) { System.err.println("Skipping null value: " + section + ": key=" + key); } } }