|
|
|
@ -36,6 +36,7 @@ import java.util.Comparator;
|
|
|
|
|
import java.util.Enumeration; |
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.Set; |
|
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
import java.util.zip.ZipEntry; |
|
|
|
|
import java.util.zip.ZipFile; |
|
|
|
|
|
|
|
|
@ -46,6 +47,7 @@ public final class FunctionConstants {
|
|
|
|
|
public static NameAndFunctionList COMMON = getCommonFunctionList(); |
|
|
|
|
public static NameAndTypeAndFunctionList[] EMBFUNCTIONS = getEmbededFunctionListArray(); |
|
|
|
|
public static FunctionGroup ALL = getAllFunctionGroup(); |
|
|
|
|
public static List<String> abandonFormulas = Arrays.asList("CIRCULAR", "CROSSLAYERTOTAL", "HIERARCHY", "LAYERTOTAL"); |
|
|
|
|
|
|
|
|
|
static { |
|
|
|
|
loadEmbededFunctions(); |
|
|
|
@ -54,7 +56,8 @@ public final class FunctionConstants {
|
|
|
|
|
/** |
|
|
|
|
* Don't let anyone instantiate this class. |
|
|
|
|
*/ |
|
|
|
|
private FunctionConstants() {} |
|
|
|
|
private FunctionConstants() { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private static void loadEmbededFunctions() { |
|
|
|
|
String pkgName = "com.fr.function"; |
|
|
|
@ -88,7 +91,10 @@ public final class FunctionConstants {
|
|
|
|
|
Class<?> cls = Class.forName(pkgName + "." + fileName.substring(0, fileName.length() - 6)); |
|
|
|
|
if (StableUtils.classInstanceOf(cls, iface)) { |
|
|
|
|
Function inst; |
|
|
|
|
inst = (Function)cls.newInstance(); |
|
|
|
|
inst = (Function) cls.newInstance(); |
|
|
|
|
if (abandonFormulas.contains(inst.getClass().getSimpleName())) { |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
for (NameAndTypeAndFunctionList EMBFUNCTION : EMBFUNCTIONS) { |
|
|
|
|
if (EMBFUNCTION.test(inst)) { |
|
|
|
|
break; |
|
|
|
@ -300,11 +306,12 @@ public final class FunctionConstants {
|
|
|
|
|
Collections.addAll(all, CUSTOM.getDescriptions()); |
|
|
|
|
//hugh:自定义函数分组
|
|
|
|
|
Set<Mutable> containers = ExtraClassManager.getInstance().getArray(FunctionDefContainer.MARK_STRING); |
|
|
|
|
if(!containers.isEmpty()){ |
|
|
|
|
for(Mutable container : containers){ |
|
|
|
|
Collections.addAll(all,createFunctionGroup(((FunctionDefContainer)container)).getDescriptions()); |
|
|
|
|
if (!containers.isEmpty()) { |
|
|
|
|
for (Mutable container : containers) { |
|
|
|
|
Collections.addAll(all, createFunctionGroup(((FunctionDefContainer) container)).getDescriptions()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
all = all.stream().filter(n -> !abandonFormulas.contains(n.getName())).collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
Collections.sort(all, new Comparator<NameAndDescription>() { |
|
|
|
|
@Override |
|
|
|
|