// Path: driver/src/com/leandog/brazenhead/exceptions/IllegalVariableArgumentException.java
// public class IllegalVariableArgumentException extends RuntimeException {
// 
//     private static final long serialVersionUID = 1L;
//     
//     public IllegalVariableArgumentException() {
//         super("Variable names must be in the form of '@@some_name@@'.");
//     }
// 
// }
// 
// Path: driver/src/com/leandog/brazenhead/util/Objects.java
// public class Objects {
// 
//     public static boolean equal(Object a, Object b) {
//         return a == b || (a != null && a.equals(b));
//     }
// 
//     public static int hashCode(Object... objects) {
//         return Arrays.hashCode(objects);
//     }
// 
// }


import java.util.Arrays;
import com.leandog.brazenhead.exceptions.IllegalVariableArgumentException;
import com.leandog.brazenhead.util.Objects;
        }
        this.variable = variable;
    }

    public void setTarget(final Target target) {
        if (target != null) {
            this.target = target;
        }
    }

    public boolean hasVariable() {
        return variable != null;
    }

    public String getVariable() {
        return variable;
    }

    @Override
    public int hashCode() {
        return name.hashCode() + Arrays.hashCode(arguments);
    }

    @Override
    public boolean equals(Object other) {
        if (null == other || !(other instanceof Command)) {
            return false;
        }

        final Command otherCommand = (Command) other;
// Path: driver/src/com/leandog/brazenhead/exceptions/IllegalVariableArgumentException.java
// public class IllegalVariableArgumentException extends RuntimeException {
// 
//     private static final long serialVersionUID = 1L;
//     
//     public IllegalVariableArgumentException() {
//         super("Variable names must be in the form of '@@some_name@@'.");
//     }
// 
// }
// 
// Path: driver/src/com/leandog/brazenhead/util/Objects.java
// public class Objects {
// 
//     public static boolean equal(Object a, Object b) {
//         return a == b || (a != null && a.equals(b));
//     }
// 
//     public static int hashCode(Object... objects) {
//         return Arrays.hashCode(objects);
//     }
// 
// }


// Path: driver/src/com/leandog/brazenhead/commands/Command.java
import java.util.Arrays;
import com.leandog.brazenhead.exceptions.IllegalVariableArgumentException;
import com.leandog.brazenhead.util.Objects;

        }
        this.variable = variable;
    }

    public void setTarget(final Target target) {
        if (target != null) {
            this.target = target;
        }
    }

    public boolean hasVariable() {
        return variable != null;
    }

    public String getVariable() {
        return variable;
    }

    @Override
    public int hashCode() {
        return name.hashCode() + Arrays.hashCode(arguments);
    }

    @Override
    public boolean equals(Object other) {
        if (null == other || !(other instanceof Command)) {
            return false;
        }

        final Command otherCommand = (Command) other;
        return Objects.equal(name, otherCommand.getName()) && Arrays.equals(arguments, otherCommand.getArguments());