package org.geogebra.common.kernel.commands;
import org.geogebra.common.kernel.Kernel;
import org.geogebra.common.kernel.algos.AlgoCountIf;
import org.geogebra.common.kernel.algos.AlgoCountIf3;
import org.geogebra.common.kernel.arithmetic.ValidExpression;
import org.geogebra.common.kernel.geos.GeoBoolean;
import org.geogebra.common.kernel.geos.GeoElement;
import org.geogebra.common.kernel.geos.GeoFunction;
import org.geogebra.common.kernel.geos.GeoList;
/**
* CountIf[ <GeoBoolean>, <GeoList> ]
*/
public class CmdCountIf extends CmdKeepIf {
/**
* Create new command processor
*
* @param kernel
* kernel
*/
public CmdCountIf(Kernel kernel) {
super(kernel);
}
@Override
protected GeoElement[] getResult2(ValidExpression c, GeoFunction booleanFun,
GeoElement[] args) {
AlgoCountIf algo = new AlgoCountIf(cons, c.getLabel(), booleanFun,
((GeoList) args[1]));
GeoElement[] ret = { algo.getResult() };
return ret;
}
@Override
protected GeoElement[] getResult3(ValidExpression c, GeoBoolean arg,
GeoElement[] vars, GeoList[] over) {
AlgoCountIf3 algo = new AlgoCountIf3(cons, c.getLabel(), arg, vars[0],
over[0]);
GeoElement[] ret = { algo.getResult() };
return ret;
}
}