Skip to content

Commit

Permalink
Issue #8328: Change name of checkstyle types to be close to real java…
Browse files Browse the repository at this point in the history
… types - misc
  • Loading branch information
gaurabdg committed Jun 29, 2020
1 parent 82701dc commit f153622
Show file tree
Hide file tree
Showing 20 changed files with 97 additions and 90 deletions.
2 changes: 1 addition & 1 deletion config/checkstyle_sevntu_checks.xml
Expand Up @@ -125,7 +125,7 @@
<!-- AccessModifier is in util package (should be moved to api package) to disallow
its usage by API clients till https://github.com/checkstyle/checkstyle/issues/3511 -->
<property name="forbiddenImportsExcludesRegexp"
value="^com.puppycrawl.tools.checkstyle.checks.naming.AccessModifier$"/>
value="^com.puppycrawl.tools.checkstyle.checks.naming.AccessModifierOption$"/>
</module>
<module name="LineLengthExtended">
<property name="max" value="100"/>
Expand Down
2 changes: 1 addition & 1 deletion config/import-control.xml
Expand Up @@ -102,7 +102,7 @@
local-only="true"/>
<!-- AccessModifier is in util package (should be moved to api package) to disallow
its usage by API clients till https://github.com/checkstyle/checkstyle/issues/3511 -->
<allow class="com.puppycrawl.tools.checkstyle.checks.naming.AccessModifier"
<allow class="com.puppycrawl.tools.checkstyle.checks.naming.AccessModifierOption"
local-only="true"/>

<allow class="com.puppycrawl.tools.checkstyle.Checker" local-only="true"/>
Expand Down
Expand Up @@ -45,7 +45,7 @@
import org.apache.commons.beanutils.converters.LongConverter;
import org.apache.commons.beanutils.converters.ShortConverter;

import com.puppycrawl.tools.checkstyle.checks.naming.AccessModifier;
import com.puppycrawl.tools.checkstyle.checks.naming.AccessModifierOption;
import com.puppycrawl.tools.checkstyle.utils.CommonUtil;

/**
Expand Down Expand Up @@ -165,7 +165,7 @@ private static void registerCustomTypes(ConvertUtilsBean cub) {
cub.register(new SeverityLevelConverter(), SeverityLevel.class);
cub.register(new ScopeConverter(), Scope.class);
cub.register(new UriConverter(), URI.class);
cub.register(new RelaxedAccessModifierArrayConverter(), AccessModifier[].class);
cub.register(new RelaxedAccessModifierArrayConverter(), AccessModifierOption[].class);
}

/**
Expand Down Expand Up @@ -376,26 +376,27 @@ public Object convert(Class type, Object value) {
}

/**
* A converter that converts strings to {@link AccessModifier}.
* A converter that converts strings to {@link AccessModifierOption}.
* This implementation does not care whether the array elements contain characters like '_'.
* The normal {@link ArrayConverter} class has problems with this character.
*/
private static class RelaxedAccessModifierArrayConverter implements Converter {

/** Constant for optimization. */
private static final AccessModifier[] EMPTY_MODIFIER_ARRAY = new AccessModifier[0];
private static final AccessModifierOption[] EMPTY_MODIFIER_ARRAY =
new AccessModifierOption[0];

@SuppressWarnings("unchecked")
@Override
public Object convert(Class type, Object value) {
// Converts to a String and trims it for the tokenizer.
final StringTokenizer tokenizer = new StringTokenizer(
value.toString().trim(), COMMA_SEPARATOR);
final List<AccessModifier> result = new ArrayList<>();
final List<AccessModifierOption> result = new ArrayList<>();

while (tokenizer.hasMoreTokens()) {
final String token = tokenizer.nextToken();
result.add(AccessModifier.getInstance(token.trim()));
result.add(AccessModifierOption.getInstance(token.trim()));
}

return result.toArray(EMPTY_MODIFIER_ARRAY);
Expand Down
Expand Up @@ -48,7 +48,7 @@
* Checks the Javadoc of a method or constructor.
* The scope to verify is specified using the {@code Scope} class and defaults
* to {@code Scope.PRIVATE}. To verify another scope, set property scope to
* a different <a href="https://checkstyle.org/property_types.html#scope">scope</a>.
* a different <a href="https://checkstyle.org/property_types.html#Scope">scope</a>.
* </p>
* <p>
* Violates parameters and type parameters for which no param tags are present can
Expand Down
Expand Up @@ -42,7 +42,7 @@
* Checks for missing Javadoc comments for a method or constructor. The scope to verify is
* specified using the {@code Scope} class and defaults to {@code Scope.PUBLIC}. To verify
* another scope, set property scope to a different
* <a href="https://checkstyle.org/property_types.html#scope">scope</a>.
* <a href="https://checkstyle.org/property_types.html#Scope">scope</a>.
* </p>
* <p>
* Javadoc is not required on a method that is tagged with the {@code @Override} annotation.
Expand Down
Expand Up @@ -27,7 +27,7 @@
* https://docs.oracle.com/javase/specs/jls/se8/html/jls-6.html#jls-6.6
*
*/
public enum AccessModifier {
public enum AccessModifierOption {

/** Public access modifier. */
PUBLIC,
Expand All @@ -52,13 +52,13 @@ private String getName() {
* given access modifier name represented as a {@link String}.
* The access modifier name can be formatted both as lower case or upper case string.
* For example, passing PACKAGE or package as a modifier name
* will return {@link AccessModifier#PACKAGE}.
* will return {@link AccessModifierOption#PACKAGE}.
*
* @param modifierName access modifier name represented as a {@link String}.
* @return the AccessModifier associated with given access modifier name.
*/
public static AccessModifier getInstance(String modifierName) {
return valueOf(AccessModifier.class, modifierName.trim().toUpperCase(Locale.ENGLISH));
public static AccessModifierOption getInstance(String modifierName) {
return valueOf(AccessModifierOption.class, modifierName.trim().toUpperCase(Locale.ENGLISH));
}

}
Expand Up @@ -59,7 +59,8 @@
* Default value is {@code false}.
* </li>
* <li>
* Property {@code accessModifiers} - Access modifiers of methods where parameters are checked.
* Property {@code accessModifiers} - Access modifiers of methods where parameters are
* checked.
* Default value is {@code public, protected, package, private}.
* </li>
* </ul>
Expand Down Expand Up @@ -178,11 +179,11 @@ public class ParameterNameCheck extends AbstractNameCheck {
private boolean ignoreOverridden;

/** Access modifiers of methods where parameters are checked. */
private AccessModifier[] accessModifiers = {
AccessModifier.PUBLIC,
AccessModifier.PROTECTED,
AccessModifier.PACKAGE,
AccessModifier.PRIVATE,
private AccessModifierOption[] accessModifiers = {
AccessModifierOption.PUBLIC,
AccessModifierOption.PROTECTED,
AccessModifierOption.PACKAGE,
AccessModifierOption.PRIVATE,
};

/**
Expand Down Expand Up @@ -213,7 +214,7 @@ public void setIgnoreOverridden(boolean ignoreOverridden) {
*
* @param accessModifiers access modifiers of methods which should be checked.
*/
public void setAccessModifiers(AccessModifier... accessModifiers) {
public void setAccessModifiers(AccessModifierOption... accessModifiers) {
this.accessModifiers =
Arrays.copyOf(accessModifiers, accessModifiers.length);
}
Expand Down Expand Up @@ -254,11 +255,11 @@ protected boolean mustCheckName(DetailAST ast) {
* @param ast the token of the method/constructor.
* @return the access modifier of the method/constructor.
*/
private static AccessModifier getAccessModifier(final DetailAST ast) {
final AccessModifier accessModifier;
private static AccessModifierOption getAccessModifier(final DetailAST ast) {
final AccessModifierOption accessModifier;

if (ScopeUtil.isInInterfaceOrAnnotationBlock(ast)) {
accessModifier = AccessModifier.PUBLIC;
accessModifier = AccessModifierOption.PUBLIC;
}
else {
final DetailAST params = ast.getParent();
Expand All @@ -276,8 +277,9 @@ private static AccessModifier getAccessModifier(final DetailAST ast) {
* @param accessModifier the access modifier of the method.
* @return whether the method matches the expected access modifier.
*/
private boolean matchAccessModifiers(final AccessModifier accessModifier) {
return Arrays.stream(accessModifiers).anyMatch(modifier -> modifier == accessModifier);
private boolean matchAccessModifiers(final AccessModifierOption accessModifier) {
return Arrays.stream(accessModifiers)
.anyMatch(modifier -> modifier == accessModifier);
}

/**
Expand Down
Expand Up @@ -49,17 +49,17 @@
* </p>
* <ul>
* <li>
* Property {@code files} - Define a Regular Expression matched against the file
* Property {@code files} - Define a Regular Expression matched against the file
* name associated with an audit event.
* Default value is {@code null}.
* </li>
* <li>
* Property {@code checks} - Define a Regular Expression matched against the name
* Property {@code checks} - Define a Regular Expression matched against the name
* of the check associated with an audit event.
* Default value is {@code null}.
* </li>
* <li>
* Property {@code message} - Define a Regular Expression matched against the message
* Property {@code message} - Define a Regular Expression matched against the message
* of the check associated with an audit event.
* Default value is {@code null}.
* </li>
Expand Down Expand Up @@ -408,16 +408,16 @@ public class SuppressionXpathSingleFilter extends AutomaticBean implements
*/
private XpathFilterElement xpathFilter;
/**
* Define a Regular Expression matched against the file name associated with an audit event.
* Define a Regular Expression matched against the file name associated with an audit event.
*/
private Pattern files;
/**
* Define a Regular Expression matched against the name of the check associated
* Define a Regular Expression matched against the name of the check associated
* with an audit event.
*/
private Pattern checks;
/**
* Define a Regular Expression matched against the message of the check
* Define a Regular Expression matched against the message of the check
* associated with an audit event.
*/
private Pattern message;
Expand Down
Expand Up @@ -28,7 +28,7 @@
import com.puppycrawl.tools.checkstyle.api.DetailAST;
import com.puppycrawl.tools.checkstyle.api.FullIdent;
import com.puppycrawl.tools.checkstyle.api.TokenTypes;
import com.puppycrawl.tools.checkstyle.checks.naming.AccessModifier;
import com.puppycrawl.tools.checkstyle.checks.naming.AccessModifierOption;

/**
* Contains utility methods for the checks.
Expand Down Expand Up @@ -433,31 +433,32 @@ public static boolean isReceiverParameter(DetailAST parameterDefAst) {
}

/**
* Returns {@link AccessModifier} based on the information about access modifier
* Returns {@link AccessModifierOption} based on the information about access modifier
* taken from the given token of type {@link TokenTypes#MODIFIERS}.
*
* @param modifiersToken token of type {@link TokenTypes#MODIFIERS}.
* @return {@link AccessModifier}.
* @return {@link AccessModifierOption}.
* @throws IllegalArgumentException when expected non-null modifiersToken with type 'MODIFIERS'
*/
public static AccessModifier getAccessModifierFromModifiersToken(DetailAST modifiersToken) {
public static AccessModifierOption
getAccessModifierFromModifiersToken(DetailAST modifiersToken) {
if (modifiersToken == null || modifiersToken.getType() != TokenTypes.MODIFIERS) {
throw new IllegalArgumentException("expected non-null AST-token with type 'MODIFIERS'");
}

// default access modifier
AccessModifier accessModifier = AccessModifier.PACKAGE;
AccessModifierOption accessModifier = AccessModifierOption.PACKAGE;
for (DetailAST token = modifiersToken.getFirstChild(); token != null;
token = token.getNextSibling()) {
final int tokenType = token.getType();
if (tokenType == TokenTypes.LITERAL_PUBLIC) {
accessModifier = AccessModifier.PUBLIC;
accessModifier = AccessModifierOption.PUBLIC;
}
else if (tokenType == TokenTypes.LITERAL_PROTECTED) {
accessModifier = AccessModifier.PROTECTED;
accessModifier = AccessModifierOption.PROTECTED;
}
else if (tokenType == TokenTypes.LITERAL_PRIVATE) {
accessModifier = AccessModifier.PRIVATE;
accessModifier = AccessModifierOption.PRIVATE;
}
}
return accessModifier;
Expand Down
Expand Up @@ -39,7 +39,7 @@

import com.puppycrawl.tools.checkstyle.DefaultConfiguration;
import com.puppycrawl.tools.checkstyle.DefaultContext;
import com.puppycrawl.tools.checkstyle.checks.naming.AccessModifier;
import com.puppycrawl.tools.checkstyle.checks.naming.AccessModifierOption;

public class AutomaticBeanTest {

Expand Down Expand Up @@ -182,7 +182,7 @@ public void testBeanConverters() throws Exception {
bean.setSeverityLevel(null);
bean.setScope(null);
bean.setUri(null);
bean.setAccessModifiers(AccessModifier.PACKAGE);
bean.setAccessModifiers(AccessModifierOption.PACKAGE);

final DefaultConfiguration config = new DefaultConfiguration("bean");
config.addAttribute("strings", "a, b, c");
Expand All @@ -198,9 +198,9 @@ public void testBeanConverters() throws Exception {
assertEquals(SeverityLevel.ERROR, bean.severityLevel, "invalid result");
assertEquals(Scope.PUBLIC, bean.scope, "invalid result");
assertEquals(new URI("http://github.com"), bean.uri, "invalid result");
assertArrayEquals(
new AccessModifier[] {AccessModifier.PUBLIC, AccessModifier.PRIVATE},
bean.accessModifiers, "invalid result");
assertArrayEquals(new AccessModifierOption[] {AccessModifierOption.PUBLIC,
AccessModifierOption.PRIVATE}, bean.accessModifiers,
"invalid result");
}

@Test
Expand Down Expand Up @@ -288,7 +288,7 @@ public static class ConverterBean extends AutomaticBean {
private SeverityLevel severityLevel;
private Scope scope;
private URI uri;
private AccessModifier[] accessModifiers;
private AccessModifierOption[] accessModifiers;

/**
* Setter for strings.
Expand Down Expand Up @@ -340,8 +340,9 @@ public void setUri(URI uri) {
*
* @param accessModifiers access modifiers.
*/
public void setAccessModifiers(AccessModifier... accessModifiers) {
this.accessModifiers = Arrays.copyOf(accessModifiers, accessModifiers.length);
public void setAccessModifiers(AccessModifierOption... accessModifiers) {
this.accessModifiers = Arrays.copyOf(accessModifiers,
accessModifiers.length);
}

@Override
Expand Down
Expand Up @@ -142,7 +142,7 @@ public void testPublicAccessModifier()
final DefaultConfiguration checkConfig =
createModuleConfig(ParameterNameCheck.class);
checkConfig.addAttribute("format", "^h$");
checkConfig.addAttribute("accessModifiers", AccessModifier.PUBLIC.toString());
checkConfig.addAttribute("accessModifiers", AccessModifierOption.PUBLIC.toString());

final String pattern = "^h$";

Expand Down
Expand Up @@ -83,7 +83,7 @@
import com.puppycrawl.tools.checkstyle.api.Configuration;
import com.puppycrawl.tools.checkstyle.api.Scope;
import com.puppycrawl.tools.checkstyle.checks.javadoc.AbstractJavadocCheck;
import com.puppycrawl.tools.checkstyle.checks.naming.AccessModifier;
import com.puppycrawl.tools.checkstyle.checks.naming.AccessModifierOption;
import com.puppycrawl.tools.checkstyle.internal.utils.CheckUtil;
import com.puppycrawl.tools.checkstyle.internal.utils.TestUtil;
import com.puppycrawl.tools.checkstyle.internal.utils.XdocUtil;
Expand Down Expand Up @@ -1019,8 +1019,8 @@ else if (fieldClass == Pattern[].class) {
else if (fieldClass == Scope.class) {
result = "Scope";
}
else if (fieldClass == AccessModifier[].class) {
result = "Access Modifier Set";
else if (fieldClass == AccessModifierOption[].class) {
result = "AccessModifierOption[]";
}
else if ("PropertyCacheFile".equals(fieldClass.getSimpleName())) {
result = "File";
Expand Down Expand Up @@ -1239,7 +1239,7 @@ else if (fieldClass.isEnum()) {
result = value.toString().toLowerCase(Locale.ENGLISH);
}
}
else if (fieldClass == AccessModifier[].class) {
else if (fieldClass == AccessModifierOption[].class) {
result = Arrays.toString((Object[]) value).replace("[", "").replace("]", "");
}
else {
Expand Down
Expand Up @@ -40,7 +40,7 @@
import com.puppycrawl.tools.checkstyle.JavaParser;
import com.puppycrawl.tools.checkstyle.api.DetailAST;
import com.puppycrawl.tools.checkstyle.api.TokenTypes;
import com.puppycrawl.tools.checkstyle.checks.naming.AccessModifier;
import com.puppycrawl.tools.checkstyle.checks.naming.AccessModifierOption;

public class CheckUtilTest extends AbstractPathTestSupport {

Expand Down Expand Up @@ -271,24 +271,24 @@ public void testIsSetterMethod() throws Exception {
@Test
public void testGetAccessModifierFromModifiersToken() throws Exception {
final DetailAST privateVariable = getNodeFromFile(TokenTypes.VARIABLE_DEF);
final AccessModifier modifierPrivate =
final AccessModifierOption modifierPrivate =
CheckUtil.getAccessModifierFromModifiersToken(privateVariable.getFirstChild());
assertEquals(AccessModifier.PRIVATE, modifierPrivate, "Invalid access modifier");
assertEquals(AccessModifierOption.PRIVATE, modifierPrivate, "Invalid access modifier");

final DetailAST protectedVariable = privateVariable.getNextSibling();
final AccessModifier modifierProtected =
final AccessModifierOption modifierProtected =
CheckUtil.getAccessModifierFromModifiersToken(protectedVariable.getFirstChild());
assertEquals(AccessModifier.PROTECTED, modifierProtected, "Invalid access modifier");
assertEquals(AccessModifierOption.PROTECTED, modifierProtected, "Invalid access modifier");

final DetailAST publicVariable = protectedVariable.getNextSibling();
final AccessModifier modifierPublic =
final AccessModifierOption modifierPublic =
CheckUtil.getAccessModifierFromModifiersToken(publicVariable.getFirstChild());
assertEquals(AccessModifier.PUBLIC, modifierPublic, "Invalid access modifier");
assertEquals(AccessModifierOption.PUBLIC, modifierPublic, "Invalid access modifier");

final DetailAST packageVariable = publicVariable.getNextSibling();
final AccessModifier modifierPackage =
final AccessModifierOption modifierPackage =
CheckUtil.getAccessModifierFromModifiersToken(packageVariable.getFirstChild());
assertEquals(AccessModifier.PACKAGE, modifierPackage, "Invalid access modifier");
assertEquals(AccessModifierOption.PACKAGE, modifierPackage, "Invalid access modifier");
}

@Test
Expand Down

0 comments on commit f153622

Please sign in to comment.