package com.dhemery.os; import java.util.List; import java.util.Map; /** * Represents command to run on the operating system. * The mechanism for invoking the command is left to implementors. */ public interface OSCommand { /** * A description of the command. * The discription neither affects nor is affected by execution of the command. */ String description(); /** * The path to the command's executable file. * The path is such that invoking it on the command line * would run the command. */ String path(); /** * The arguments for the command. */ List<String> arguments(); /** * The map of environment variables to add to the command's execution environment. * This map does not include environment variables that will be added by the operating system. */ Map<String, String> environment(); }