插件开发工具库,推荐依赖该工具库。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

65 lines
2.4 KiB

package com.fanruan.api.design.ui.component.chart;
import com.fanruan.api.util.AssistKit;
import com.fr.data.util.function.AverageFunction;
import com.fr.data.util.function.CountFunction;
import com.fr.data.util.function.DataFunction;
import com.fr.data.util.function.MaxFunction;
import com.fr.data.util.function.MinFunction;
import com.fr.data.util.function.NoneFunction;
import com.fr.data.util.function.SumFunction;
/**
* @author Bjorn
* @version 10.0
* Created by Bjorn on 2019-09-24
*/
public enum DataFunctionType {
NONE_FUNCTION("Fine-Design_Chart_Data_Function_None", NoneFunction.class),
SUM_FUNCTION("Fine-Design_Chart_Data_Function_Sum", SumFunction.class),
AVERAGE_FUNCTION("Fine-Design_Chart_Data_Function_Average", AverageFunction.class),
MAX_FUNCTION("Fine-Design_Chart_Data_Function_Max", MaxFunction.class),
MIN_FUNCTION("Fine-Design_Chart_Data_Function_Min", MinFunction.class),
COUNT_FUNCTION("Fine-Design_Chart_Data_Function_Count", CountFunction.class);
String functionLocaleName;
Class functionClass;
public static final int NONE_FUNCTION_INDEX = 0;
DataFunctionType(String functionLocaleName, Class functionClass) {
this.functionLocaleName = functionLocaleName;
this.functionClass = functionClass;
}
public static int getIndexByFunction(DataFunction function) {
if (function == null) {
return NONE_FUNCTION_INDEX;
}
for (DataFunctionType dataFunctionType : DataFunctionType.values()) {
if (AssistKit.equals(dataFunctionType.functionClass, function.getClass())) {
return dataFunctionType.ordinal();
}
}
return NONE_FUNCTION_INDEX;
}
public static DataFunction getFunctionByIndex(int index) throws IllegalAccessException, InstantiationException {
DataFunctionType[] values = DataFunctionType.values();
if (index < values.length) {
return (DataFunction) values[index].functionClass.newInstance();
}
return null;
}
public static String[] getFunctionLocaleNames() {
DataFunctionType[] values = DataFunctionType.values();
String[] functionLocaleNames = new String[values.length];
for (int i = 0; i < values.length; i++) {
functionLocaleNames[i] = values[i].functionLocaleName;
}
return functionLocaleNames;
}
}