package org.atomnuke.util.config.io;
import org.atomnuke.util.config.ConfigurationException;
import org.atomnuke.util.config.io.marshall.ConfigurationMarshaller;
/**
*
* @author zinic
*/
public class ConfigurationManagerImpl<T> implements ConfigurationManager<T> {
private final ConfigurationMarshaller<T> marshaller;
private final ConfigurationWriter<T> writer;
private final ConfigurationReader<T> reader;
public ConfigurationManagerImpl(ConfigurationMarshaller<T> marshaller, ConfigurationWriter<T> writer, ConfigurationReader<T> reader) {
this.marshaller = marshaller;
this.writer = writer;
this.reader = reader;
}
@Override
public void destroy() {
}
@Override
public void write(T value) throws ConfigurationException {
writer.write(value, marshaller);
}
@Override
public T read() throws ConfigurationException {
return reader.read(marshaller);
}
@Override
public UpdateTag readUpdateTag() throws ConfigurationException {
return reader.readUpdateTag();
}
}