From 7038beae50a27d61f76405ba7fb481e694a89f29 Mon Sep 17 00:00:00 2001 From: "Henry.Wang" Date: Thu, 16 Dec 2021 17:19:28 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-63751=2011.0.1-=E5=A4=9A=E7=BB=B4?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=9B=86/SAP=E6=95=B0=E6=8D=AE=E9=9B=86?= =?UTF-8?q?=E5=AF=B9=E6=99=AE=E9=80=9A=E7=94=A8=E6=88=B7=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E4=B8=8D=E5=BC=80=E6=94=BE=20=E4=BD=BF=E7=94=A8=E6=9D=83?= =?UTF-8?q?=E9=99=90=EF=BC=8C=E4=BD=86=E5=AF=B9=E6=A8=A1=E6=9D=BF=E4=BE=9D?= =?UTF-8?q?=E7=84=B6=E8=83=BD=E4=BF=9D=E5=AD=98=E6=88=90=E5=8A=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AbstractAuthorityCheckerProvider.java | 16 ++++++++++++++++ .../authority/AuthorityCheckerProvider.java | 10 ++++++++++ .../authority/DSColumnAuthorityChecker.java | 2 +- .../authority/ElementAuthorityChecker.java | 6 +++--- .../authority/FormulaAuthorityChecker.java | 2 +- .../authority/JTemplateAuthorityChecker.java | 8 ++++++++ .../NameDatabaseConnectionAuthorityChecker.java | 2 +- .../authority/NameTableDataAuthorityChecker.java | 2 +- 8 files changed, 41 insertions(+), 7 deletions(-) create mode 100644 designer-base/src/main/java/com/fr/design/mainframe/authority/AbstractAuthorityCheckerProvider.java create mode 100644 designer-base/src/main/java/com/fr/design/mainframe/authority/AuthorityCheckerProvider.java diff --git a/designer-base/src/main/java/com/fr/design/mainframe/authority/AbstractAuthorityCheckerProvider.java b/designer-base/src/main/java/com/fr/design/mainframe/authority/AbstractAuthorityCheckerProvider.java new file mode 100644 index 0000000000..30d594df2c --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/mainframe/authority/AbstractAuthorityCheckerProvider.java @@ -0,0 +1,16 @@ +package com.fr.design.mainframe.authority; + +import com.fr.stable.fun.mark.API; + +@API(level = AuthorityCheckerProvider.CURRENT_LEVEL) +public abstract class AbstractAuthorityCheckerProvider implements AuthorityCheckerProvider { + @Override + public int currentAPILevel() { + return CURRENT_LEVEL; + } + + @Override + public String mark4Provider() { + return getClass().getName(); + } +} diff --git a/designer-base/src/main/java/com/fr/design/mainframe/authority/AuthorityCheckerProvider.java b/designer-base/src/main/java/com/fr/design/mainframe/authority/AuthorityCheckerProvider.java new file mode 100644 index 0000000000..4aa38717ae --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/mainframe/authority/AuthorityCheckerProvider.java @@ -0,0 +1,10 @@ +package com.fr.design.mainframe.authority; + +import com.fr.stable.fun.mark.Mutable; + +public interface AuthorityCheckerProvider extends Mutable { + String XML_TAG = "AuthorityCheckerProvider"; + int CURRENT_LEVEL = 1; + + ElementAuthorityChecker getElementAuthorityChecker(); +} diff --git a/designer-base/src/main/java/com/fr/design/mainframe/authority/DSColumnAuthorityChecker.java b/designer-base/src/main/java/com/fr/design/mainframe/authority/DSColumnAuthorityChecker.java index fdab6ea2a2..0d1df60673 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/authority/DSColumnAuthorityChecker.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/authority/DSColumnAuthorityChecker.java @@ -11,7 +11,7 @@ public class DSColumnAuthorityChecker extends ElementAuthorityChecker @Override @Nullable - Set getNoAuthDatasetNames(DSColumn dsColumn, Set authDatasetNames) { + protected Set getNoAuthDatasetNames(DSColumn dsColumn, Set authDatasetNames) { if (!authDatasetNames.contains(dsColumn.getDSName())) { return new HashSet<>(Arrays.asList(dsColumn.getDSName())); } diff --git a/designer-base/src/main/java/com/fr/design/mainframe/authority/ElementAuthorityChecker.java b/designer-base/src/main/java/com/fr/design/mainframe/authority/ElementAuthorityChecker.java index 67d0f1da36..82740da4ec 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/authority/ElementAuthorityChecker.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/authority/ElementAuthorityChecker.java @@ -17,7 +17,7 @@ public abstract class ElementAuthorityChecker { * @return 如果有返回名称,没有返回null */ @Nullable - Set getNoAuthConnectionNames(T t, Set authConnectionNames) { + protected Set getNoAuthConnectionNames(T t, Set authConnectionNames) { return null; } @@ -29,7 +29,7 @@ public abstract class ElementAuthorityChecker { * @return 如果有返回名称,没有返回null */ @Nullable - Set getNoAuthDatasetNames(T t, Set authDatasetNames) { + protected Set getNoAuthDatasetNames(T t, Set authDatasetNames) { return null; } @@ -37,7 +37,7 @@ public abstract class ElementAuthorityChecker { * @Description 要检查对象的className * @return className */ - String getCheckClassName() { + protected String getCheckClassName() { ParameterizedTypeImpl parameterizedType = (ParameterizedTypeImpl) this.getClass().getGenericSuperclass(); Type type = parameterizedType.getActualTypeArguments()[0]; return type.getTypeName(); diff --git a/designer-base/src/main/java/com/fr/design/mainframe/authority/FormulaAuthorityChecker.java b/designer-base/src/main/java/com/fr/design/mainframe/authority/FormulaAuthorityChecker.java index 15a7f4853f..086a437b12 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/authority/FormulaAuthorityChecker.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/authority/FormulaAuthorityChecker.java @@ -29,7 +29,7 @@ public class FormulaAuthorityChecker extends ElementAuthorityChecker { @Override @Nullable - Set getNoAuthDatasetNames(Formula formula, Set authDatasetNames) { + public Set getNoAuthDatasetNames(Formula formula, Set authDatasetNames) { return getNoAuthNames(formula, DATASET_NAME_FORMULA_PARSER, authDatasetNames); } diff --git a/designer-base/src/main/java/com/fr/design/mainframe/authority/JTemplateAuthorityChecker.java b/designer-base/src/main/java/com/fr/design/mainframe/authority/JTemplateAuthorityChecker.java index d76031f654..0c81c2fffe 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/authority/JTemplateAuthorityChecker.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/authority/JTemplateAuthorityChecker.java @@ -1,6 +1,7 @@ package com.fr.design.mainframe.authority; +import com.fr.design.ExtraDesignClassManager; import com.fr.design.dialog.FineJOptionPane; import com.fr.design.i18n.Toolkit; @@ -68,6 +69,13 @@ public class JTemplateAuthorityChecker { registerChecker(new DSColumnAuthorityChecker()); registerChecker(new FormulaAuthorityChecker()); registerChecker(new NameTableDataAuthorityChecker()); + Set authorityCheckerProviders + = ExtraDesignClassManager.getInstance().getArray(AuthorityCheckerProvider.XML_TAG); + for (AuthorityCheckerProvider authorityCheckerProvider : authorityCheckerProviders) { + ElementAuthorityChecker elementAuthorityChecker + = authorityCheckerProvider.getElementAuthorityChecker(); + registerChecker(elementAuthorityChecker); + } } private void registerChecker(ElementAuthorityChecker checker) { diff --git a/designer-base/src/main/java/com/fr/design/mainframe/authority/NameDatabaseConnectionAuthorityChecker.java b/designer-base/src/main/java/com/fr/design/mainframe/authority/NameDatabaseConnectionAuthorityChecker.java index 96bc0b8c5d..e65fe55cc1 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/authority/NameDatabaseConnectionAuthorityChecker.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/authority/NameDatabaseConnectionAuthorityChecker.java @@ -11,7 +11,7 @@ import java.util.stream.Collectors; public class NameDatabaseConnectionAuthorityChecker extends ElementAuthorityChecker { @Override @Nullable - Set getNoAuthConnectionNames(NameDatabaseConnection nameDatabaseConnection, Set authConnectionNames) { + protected Set getNoAuthConnectionNames(NameDatabaseConnection nameDatabaseConnection, Set authConnectionNames) { String name = nameDatabaseConnection.getName(); if (!authConnectionNames.contains(name)) { return new HashSet<>(Arrays.asList(name)); diff --git a/designer-base/src/main/java/com/fr/design/mainframe/authority/NameTableDataAuthorityChecker.java b/designer-base/src/main/java/com/fr/design/mainframe/authority/NameTableDataAuthorityChecker.java index 13e7300856..93cad06e26 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/authority/NameTableDataAuthorityChecker.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/authority/NameTableDataAuthorityChecker.java @@ -10,7 +10,7 @@ import java.util.Set; public class NameTableDataAuthorityChecker extends ElementAuthorityChecker { @Override @Nullable - Set getNoAuthDatasetNames(NameTableData nameTableData, Set authDatasetNames) { + protected Set getNoAuthDatasetNames(NameTableData nameTableData, Set authDatasetNames) { if (!authDatasetNames.contains(nameTableData.getName())) { return new HashSet<>(Arrays.asList(nameTableData.getName())); }