package com.dhemery.osx; import com.dhemery.core.Builder; import com.dhemery.os.OSCommandBuilder; import com.dhemery.os.RunnableCommand; import com.dhemery.os.Shell; import java.util.Arrays; import java.util.List; public class AppleScriptBuilder implements Builder<RunnableCommand> { private final OSCommandBuilder<RunnableCommand> builder; public AppleScriptBuilder(Shell shell, String description) { builder = shell.command(description, "osascript"); } /** * Append a line to the script. * @param line the line to append * @return this script command builder */ public AppleScriptBuilder withLine(String line) { builder.withArguments("-e", line); return this; } /** * Append lines to the script. * @param lines the lines to append * @return this script command builder */ public AppleScriptBuilder withLines(String... lines) { return withLines(Arrays.asList(lines)); } /** * Append lines to the script. * @param lines the lines to append * @return this script command builder */ public AppleScriptBuilder withLines(List<String> lines) { for (String line : lines) { withLine(line); } return this; } @Override public RunnableCommand build() { return builder.build(); } }