1 /* 2 * LICENSE 3 * 4 * "THE BEER-WARE LICENSE" (Revision 43): 5 * "Sven Strittmatter" <weltraumschaf@googlemail.com> wrote this file. 6 * As long as you retain this notice you can do whatever you want with 7 * this stuff. If we meet some day, and you think this stuff is worth it, 8 * you can buy me a non alcohol-free beer in return. 9 * 10 * Copyright (C) 2012 "Sven Strittmatter" <weltraumschaf@googlemail.com> 11 */ 12 package org.jenkinsci.plugins.darcs.cmd; 13 14 import hudson.util.ArgumentListBuilder; 15 import org.apache.commons.lang.Validate; 16 17 /** 18 * Common base implementation for sub builders. 19 * 20 * @author Sven Strittmatter <weltraumschaf@googlemail.com> 21 */ 22 class DarcsBaseCommandBuilder { 23 24 /** 25 * Name of Darcs executable. 26 * 27 * Examples: "darcs" or "/usr/local/bin/darcs" 28 */ 29 private final String darcsExe; 30 /** 31 * Subcommand such as `pull`, `get` etc. 32 */ 33 private final String command; 34 35 /** 36 * Initializes {@link #command} with empty string. 37 * 38 * @param darcsExe name of Darcs executable, e.g. "darcs" or "/usr/local/bin/darcs" 39 */ 40 DarcsBaseCommandBuilder(final String darcsExe) { 41 this(darcsExe, ""); 42 } 43 44 /** 45 * Dedicated constructor. 46 * 47 * @param darcsExe name of Darcs executable, e.g. "darcs" or "/usr/local/bin/darcs" 48 * @param command Darcs subcommand such as `pull`, `get` etc. 49 */ 50 DarcsBaseCommandBuilder(final String darcsExe, final String command) { 51 super(); 52 Validate.notEmpty(darcsExe, "Command must not be empty!"); 53 Validate.notNull(command, "Command must not be null!"); 54 this.darcsExe = darcsExe; 55 this.command = command; 56 } 57 58 /** 59 * Get the Darcs executable. 60 * 61 * @return string of the executable 62 */ 63 String getDarcsExe() { 64 return darcsExe; 65 } 66 67 /** 68 * Generates base argument list with executable and subcommand. 69 * 70 * @return always new instance 71 */ 72 ArgumentListBuilder createArgumentList() { 73 final ArgumentListBuilder arguments = new ArgumentListBuilder(); 74 arguments.add(darcsExe); 75 76 if (command.length() > 0) { 77 arguments.add(command); 78 } 79 80 return arguments; 81 } 82 83 }