package org.smoothbuild.lang.plugin;
import org.smoothbuild.io.util.TempDir;
import org.smoothbuild.lang.message.Message;
import org.smoothbuild.lang.value.ValueFactory;
import org.smoothbuild.util.CommandExecutor;
public interface Container {
public ValueFactory create();
public void log(Message message);
/**
* Creates temporary dir in native Operating System. Such dir is automatically
* deleted by smooth framework after native function execution completes.
* <p/>
* Temporary dir is handy when your native function implementation invokes
* command line tool (via {@link CommandExecutor}) and want to pass some files
* to it or from it. TempDir allows you to save any smooth Value in that dir
* and have it accessed by command line tools via {@link TempDir#rootOsPath()}
* .
* <p/>
* Each call to this methods creates separate dir which is what you should do
* when your command line tool read data from one dir and outputs it to
* another.
*/
public TempDir createTempDir();
}