ch.unibas.fittingwizard.infrastructure.RealLRAScript.java Source code

Java tutorial

Introduction

Here is the source code for ch.unibas.fittingwizard.infrastructure.RealLRAScript.java

Source

/*
 * Copyright (c) 2015, Florent Hedin, Markus Meuwly, and the University of Basel
 * All rights reserved.
 *
 * The 3-clause BSD license is applied to this software.
 * see LICENSE.txt
 *
 */
package ch.unibas.fittingwizard.infrastructure;

import ch.unibas.fittingwizard.Settings;
import ch.unibas.fittingwizard.application.scripts.lra.ILRAScript;
import ch.unibas.fittingwizard.application.scripts.lra.LRAScriptInput;
import ch.unibas.fittingwizard.application.scripts.lra.LRAScriptOutput;
import ch.unibas.fittingwizard.infrastructure.base.PythonScriptRunner;
import ch.unibas.fittingwizard.infrastructure.base.ScriptUtilities;
import java.io.File;
import java.util.Arrays;
import java.util.List;
import org.apache.commons.io.FilenameUtils;
import org.apache.log4j.Logger;

public class RealLRAScript implements ILRAScript {

    private final static Logger logger = Logger.getLogger(RealLRAScript.class);

    private final String LRAScriptNameKey = "scripts.atom_types";

    public static final String LPunExtension = "_l.pun";

    private final PythonScriptRunner runner;
    private File lraScriptFile;

    public RealLRAScript(Settings settings) {
        runner = new PythonScriptRunner();
        lraScriptFile = new File(settings.getScriptsDir(), settings.getValue(LRAScriptNameKey));
    }

    @Override
    public LRAScriptOutput execute(LRAScriptInput input) {

        List<String> args = Arrays.asList("-in", input.getSdfFile().toString());

        File lPunFile = new File(FilenameUtils.removeExtension(input.getSdfFile().toString()) + LPunExtension);
        ScriptUtilities.deleteFileIfExists(lPunFile);

        runner.exec(lraScriptFile, args);

        ScriptUtilities.verifyFileExistence(lPunFile);

        return new LRAScriptOutput(lPunFile);
    }

}