From 4cac1b96189f5ff808a1330e837f7860b1f8f86b Mon Sep 17 00:00:00 2001 From: shafang Date: Thu, 11 Jul 2019 11:40:45 -0700 Subject: [PATCH 1/3] remove java code isImple check but move to suppression and add only check for public class for external Dependency check --- .../ExternalDependencyExposedCheck.java | 20 +++++++++---------- .../checkstyle/checkstyle-suppressions.xml | 6 +++++- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/eng/code-quality-reports/src/main/java/com/azure/tools/checkstyle/checks/ExternalDependencyExposedCheck.java b/eng/code-quality-reports/src/main/java/com/azure/tools/checkstyle/checks/ExternalDependencyExposedCheck.java index 6c4a730d5a99..af388c4d6778 100644 --- a/eng/code-quality-reports/src/main/java/com/azure/tools/checkstyle/checks/ExternalDependencyExposedCheck.java +++ b/eng/code-quality-reports/src/main/java/com/azure/tools/checkstyle/checks/ExternalDependencyExposedCheck.java @@ -29,12 +29,12 @@ public class ExternalDependencyExposedCheck extends AbstractCheck { ))); private final Map simpleClassNameToQualifiedNameMap = new HashMap<>(); - private static boolean isImplPackage; + + private boolean isPublicClass; @Override public void beginTree(DetailAST rootAST) { simpleClassNameToQualifiedNameMap.clear(); - isImplPackage = false; } @Override @@ -50,7 +50,6 @@ public int[] getAcceptableTokens() { @Override public int[] getRequiredTokens() { return new int[] { - TokenTypes.PACKAGE_DEF, TokenTypes.IMPORT, TokenTypes.METHOD_DEF }; @@ -58,22 +57,21 @@ public int[] getRequiredTokens() { @Override public void visitToken(DetailAST token) { - if (isImplPackage) { - return; - } - switch (token.getType()) { - case TokenTypes.PACKAGE_DEF: - String packageName = FullIdent.createFullIdent(token.findFirstToken(TokenTypes.DOT)).getText(); - isImplPackage = packageName.contains(".implementation"); - break; case TokenTypes.IMPORT: // Add all imported classes into a map, key is the name of class and value is the full package path of class. final String importClassPath = FullIdent.createFullIdentBelow(token).getText(); final String className = importClassPath.substring(importClassPath.lastIndexOf(".") + 1); simpleClassNameToQualifiedNameMap.put(className, importClassPath); break; + case TokenTypes.CLASS_DEF: + final DetailAST modifiersToken = token.findFirstToken(TokenTypes.MODIFIERS); + isPublicClass = modifiersToken.branchContains(TokenTypes.LITERAL_PUBLIC); + break; case TokenTypes.METHOD_DEF: + if (!isPublicClass) { + return; + } checkNoExternalDependencyExposed(token); break; default: diff --git a/eng/code-quality-reports/src/main/resources/checkstyle/checkstyle-suppressions.xml b/eng/code-quality-reports/src/main/resources/checkstyle/checkstyle-suppressions.xml index 1f9752c52de5..ac7af8e88772 100755 --- a/eng/code-quality-reports/src/main/resources/checkstyle/checkstyle-suppressions.xml +++ b/eng/code-quality-reports/src/main/resources/checkstyle/checkstyle-suppressions.xml @@ -86,7 +86,11 @@ - + + + + + From 493e92f4da33a2b752a05c4cfaa900ebc07b5cd6 Mon Sep 17 00:00:00 2001 From: shafang Date: Wed, 25 Sep 2019 17:28:49 -0700 Subject: [PATCH 2/3] change enum to ExpandableStringEnum --- .../models/SettingFields.java | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/sdk/appconfiguration/azure-data-appconfiguration/src/main/java/com/azure/data/appconfiguration/models/SettingFields.java b/sdk/appconfiguration/azure-data-appconfiguration/src/main/java/com/azure/data/appconfiguration/models/SettingFields.java index d948c591b3d4..eafb83e7a4b8 100644 --- a/sdk/appconfiguration/azure-data-appconfiguration/src/main/java/com/azure/data/appconfiguration/models/SettingFields.java +++ b/sdk/appconfiguration/azure-data-appconfiguration/src/main/java/com/azure/data/appconfiguration/models/SettingFields.java @@ -2,6 +2,7 @@ // Licensed under the MIT License. package com.azure.data.appconfiguration.models; +import com.azure.core.util.ExpandableStringEnum; import com.azure.data.appconfiguration.ConfigurationAsyncClient; import java.util.Locale; @@ -12,40 +13,39 @@ * @see SettingSelector * @see ConfigurationAsyncClient */ -public enum SettingFields { +public class SettingFields extends ExpandableStringEnum { /** * Populates the {@link ConfigurationSetting#getKey()} from the service. */ - KEY, + public static final SettingFields KEY = fromString("KEY"); /** * Populates the {@link ConfigurationSetting#getLabel()} from the service. */ - LABEL, + public static final SettingFields LABEL = fromString("LABEL"); /** * Populates the {@link ConfigurationSetting#getValue()} from the service. */ - VALUE, + public static final SettingFields VALUE = fromString("VALUE"); /** * Populates the {@link ConfigurationSetting#getContentType()} from the service. */ - CONTENT_TYPE, + public static final SettingFields CONTENT_TYPE = fromString("CONTENT_TYPE"); /** * Populates the {@link ConfigurationSetting#getETag()} from the service. */ - ETAG, + public static final SettingFields ETAG = fromString("ETAG"); /** * Populates the {@link ConfigurationSetting#getLastModified()} from the service. */ - LAST_MODIFIED, + public static final SettingFields LAST_MODIFIED = fromString("LAST_MODIFIED"); /** * Populates the {@link ConfigurationSetting#isLocked()} from the service. */ - LOCKED, + public static final SettingFields LOCKED = fromString("LOCKED"); /** * Populates the {@link ConfigurationSetting#getTags()} from the service. */ - TAGS; - + public static final SettingFields TAGS = fromString("TAGS"); /** * Converts the SettingFields to a string that is usable for HTTP requests and logging. * @param field SettingFields to map. @@ -54,4 +54,12 @@ public enum SettingFields { public static String toStringMapper(SettingFields field) { return field.toString().toLowerCase(Locale.US); } + /** + * Creates or finds a {@link SettingFields} from its string representation. + * @param name a name to look for + * @return the corresponding {@link SettingFields} + */ + public static SettingFields fromString(String name) { + return fromString(name, SettingFields.class); + } } From 8293c65fdc3dd20e2ce045e24387fffa77e47d0d Mon Sep 17 00:00:00 2001 From: shafang Date: Thu, 26 Sep 2019 11:26:51 -0700 Subject: [PATCH 3/3] make it final --- .../com/azure/data/appconfiguration/models/SettingFields.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/appconfiguration/azure-data-appconfiguration/src/main/java/com/azure/data/appconfiguration/models/SettingFields.java b/sdk/appconfiguration/azure-data-appconfiguration/src/main/java/com/azure/data/appconfiguration/models/SettingFields.java index eafb83e7a4b8..2e5876f73a95 100644 --- a/sdk/appconfiguration/azure-data-appconfiguration/src/main/java/com/azure/data/appconfiguration/models/SettingFields.java +++ b/sdk/appconfiguration/azure-data-appconfiguration/src/main/java/com/azure/data/appconfiguration/models/SettingFields.java @@ -13,7 +13,7 @@ * @see SettingSelector * @see ConfigurationAsyncClient */ -public class SettingFields extends ExpandableStringEnum { +public final class SettingFields extends ExpandableStringEnum { /** * Populates the {@link ConfigurationSetting#getKey()} from the service. */