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
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; |
|
} |
|
}
|
|
|