allow more than 2 AND and OR conditions

This commit is contained in:
Bob Harper 2017-04-26 20:51:58 +01:00
parent 6b1f370e9b
commit ef4e039998
2 changed files with 14 additions and 14 deletions

View File

@ -46,7 +46,7 @@ public class And implements Function {
@Override
public Object call(Properties bindings, Object[] args) {
if (args.length == 2 && args[0] instanceof Boolean && args[1] instanceof Boolean) {
if (args.length >= 2 && args[0] instanceof Boolean && args[1] instanceof Boolean) {
for (Object o : args) {
if (!Not.objectToBoolean(o)) {
return false;
@ -54,7 +54,7 @@ public class And implements Function {
}
return true;
}
return new EvalError(ControlFunctionRegistry.getFunctionName(this) + " expects two booleans");
return new EvalError(ControlFunctionRegistry.getFunctionName(this) + " expects two or more booleans");
}
@Override
@ -62,7 +62,7 @@ public class And implements Function {
throws JSONException {
writer.object();
writer.key("description"); writer.value("ANDs two boolean values");
writer.key("description"); writer.value("AND two or more booleans to yield a boolean");
writer.key("params"); writer.value("boolean a, boolean b");
writer.key("returns"); writer.value("boolean");
writer.endObject();

View File

@ -46,7 +46,7 @@ public class Or implements Function {
@Override
public Object call(Properties bindings, Object[] args) {
if (args.length == 2 && args[0] instanceof Boolean && args[1] instanceof Boolean) {
if (args.length >= 2 && args[0] instanceof Boolean && args[1] instanceof Boolean) {
for (Object o : args) {
if (Not.objectToBoolean(o)) {
return true;
@ -54,7 +54,7 @@ public class Or implements Function {
}
return false;
}
return new EvalError(ControlFunctionRegistry.getFunctionName(this) + " expects two booleans");
return new EvalError(ControlFunctionRegistry.getFunctionName(this) + " expects two or more booleans");
}
@Override
@ -62,7 +62,7 @@ public class Or implements Function {
throws JSONException {
writer.object();
writer.key("description"); writer.value("Returns a OR b");
writer.key("description"); writer.value("OR two or more booleans to yield a boolean");
writer.key("params"); writer.value("boolean a, boolean b");
writer.key("returns"); writer.value("boolean");
writer.endObject();