package org.atomnuke.util.config.io.file; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import org.atomnuke.util.config.ConfigurationException; import org.atomnuke.util.config.io.ConfigurationWriter; import org.atomnuke.util.config.io.marshall.ConfigurationMarshaller; /** * * @author zinic */ public class FileConfigurationWriter<T> implements ConfigurationWriter<T> { private final File file; public FileConfigurationWriter(File file) { this.file = file; } @Override public void write(T configuration, ConfigurationMarshaller<T> marshaller) throws ConfigurationException { try { final OutputStream out = new FileOutputStream(file); marshaller.marshall(configuration, out); out.close(); } catch (FileNotFoundException fnfe) { throw new ConfigurationException("File not found: " + file.getAbsolutePath(), fnfe); } catch (IOException ioe) { throw new ConfigurationException("Unable to write configuration. Reason: " + ioe.getMessage(), ioe); } } }