diff options
Diffstat (limited to 'src/jcgp/function/Addition.java')
-rw-r--r-- | src/jcgp/function/Addition.java | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/jcgp/function/Addition.java b/src/jcgp/function/Addition.java index 45a8d35..f40bc24 100644 --- a/src/jcgp/function/Addition.java +++ b/src/jcgp/function/Addition.java @@ -3,19 +3,23 @@ package jcgp.function; import jcgp.population.Connection; public class Addition extends Function { + + private int arity = 2; @Override - public int run(Connection... connections) { - if (connections.length > 0) { - return connections[0].getValue() + connections[1].getValue(); + public Object run(Connection... connections) { + if (connections.length < arity) { + throw new InvalidArgumentsException("Not enough connections were given."); + } else if (connections[0].getValue() instanceof Integer) { + return ((Integer) connections[0].getValue()) + ((Integer) connections[1].getValue()); } else { - throw new InsufficientArgumentsException(); + throw new InvalidArgumentsException("Wrong data type, this function takes Integer."); } } @Override public int getArity() { - return 2; + return arity; } } |