package com.ycsoft.report.query.cube.showclass.cellwarn;
import com.ycsoft.commons.exception.ReportException;
/**
* 多列头的处理操作符
* 无列头选择或单个列头是,对应操作位置 为空 不能使用
*/
public enum WarnValueType {
SUM("求和"),AVG("平均值");
private String desc;
WarnValueType(String desc){
this.desc=desc;
}
public String getDesc(){
return desc;
}
public double operator(double... values) throws ReportException{
if(this.equals(SUM)){
double r=0;
for(double o:values){
r=r+o;
}
return r;
}else if(this.equals(AVG)){
double r=0;
for(double o:values){
r=r+o;
}
return r/values.length;
}else{
throw new ReportException(this.desc+" is undefind operator");
}
}
}