package org.atea.nlptools.macroniser.monogram.plugin;

import java.io.File;
import java.io.IOException;

import org.atea.nlptools.macroniser.monogram.restorer.TxtRestorer;

/**
 * @author University of Waikato - Te Whare Wānanga o Waikato
 * @version 1.0
 * @since   2014-11-20 
 */
public class TxtPlugin implements IPlugin
{
    private File tmpdir;

    public TxtPlugin(File tmpdir)
    {
        this.tmpdir = tmpdir;
    }

    public File run(PluginConfiguration configuration)
        throws IllegalArgumentException, IOException 
    {
        if (configuration.getCharsetEncoding() == null)
        {
            throw new IllegalArgumentException();
        }

        final File outputFile = File.createTempFile("mi-tmp-", configuration.getFileType(), tmpdir);
        final TxtRestorer restorer = new TxtRestorer();

        restorer.restore(
            configuration.getFile(),
            configuration.getCharsetEncoding(),
            outputFile,
            configuration.getPreserveExistingMacrons()
        );

        return outputFile;
    }
}
