Skip to content

Commit

Permalink
Issue checkstyle#3433: Cut down on Checkstyle's dependencies on Guava…
Browse files Browse the repository at this point in the history
… (part 4, collections)
  • Loading branch information
MEZk committed Sep 23, 2016
1 parent ee66d82 commit 754ea74
Show file tree
Hide file tree
Showing 17 changed files with 148 additions and 141 deletions.
7 changes: 7 additions & 0 deletions config/findbugs-exclude.xml
Expand Up @@ -105,4 +105,11 @@
<Method name="apply" />
<Bug pattern="NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE" />
</Match>
<Match>
<!-- Temporary disabled. Have to deal with Javadoc nodes as well
See https://github.com/checkstyle/checkstyle/issues/3432-->
<Class name="com.puppycrawl.tools.checkstyle.gui.JTreeTable" />
<Method name="makeCodeSelection"/>
<Bug pattern="RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT"/>
</Match>
</FindBugsFilter>
15 changes: 0 additions & 15 deletions config/import-control.xml
Expand Up @@ -73,10 +73,8 @@
<allow class="com.google.common.io.Closeables" local-only="true"/>
<allow class="com.google.common.collect.HashMultiset" local-only="true"/>
<allow class="com.google.common.collect.HashMultimap" local-only="true"/>
<allow class="com.google.common.collect.ImmutableList" local-only="true"/>
<allow class="com.google.common.collect.ImmutableMap" local-only="true"/>
<allow class="com.google.common.collect.ImmutableMultiset" local-only="true"/>
<allow class="com.google.common.collect.ImmutableSet" local-only="true"/>
<allow class="com.google.common.collect.Multimap" local-only="true"/>
<allow class="com.google.common.collect.Multiset" local-only="true"/>
<allow class="com.google.common.collect.Multiset.Entry" local-only="true"/>
Expand All @@ -91,33 +89,22 @@
<subpackage name="header">
<allow class="java.nio.charset.Charset" local-only="true"/>
<allow class="com.google.common.io.Closeables" local-only="true"/>
<allow class="com.google.common.collect.ImmutableList" local-only="true"/>
<allow class="com.google.common.collect.ImmutableSet" local-only="true"/>
</subpackage>
<subpackage name="javadoc">
<allow pkg="com.puppycrawl.tools.checkstyle.grammars.javadoc"/>
<allow pkg="java.lang.reflect"/>
<allow class="com.google.common.base.CharMatcher" local-only="true"/>
<allow class="com.google.common.collect.ImmutableList" local-only="true"/>
<allow class="com.google.common.collect.ImmutableMap" local-only="true"/>
<allow class="com.google.common.collect.ImmutableSortedSet" local-only="true"/>
<allow class="com.google.common.collect.Multiset" local-only="true"/>
</subpackage>
<subpackage name="design">
<allow class="com.google.common.annotations.VisibleForTesting" local-only="true"/>
<allow class="com.google.common.collect.ImmutableList" local-only="true"/>
<allow class="com.google.common.collect.ImmutableMap" local-only="true"/>
</subpackage>
<subpackage name="imports">
<allow class="com.google.common.collect.HashMultimap" local-only="true"/>
<allow class="com.google.common.collect.ImmutableSet" local-only="true"/>
</subpackage>
<subpackage name="coding">
<allow class="com.google.common.collect.ImmutableCollection" local-only="true"/>
<allow class="com.google.common.collect.ImmutableSet" local-only="true"/>
</subpackage>
<subpackage name="metrics">
<allow class="com.google.common.collect.ImmutableSet" local-only="true"/>
</subpackage>
</subpackage>

Expand All @@ -135,7 +122,6 @@
<allow class="com.google.common.base.CaseFormat" local-only="true"/>
<allow class="com.google.common.collect.ImmutableCollection" local-only="true"/>
<allow class="com.google.common.collect.ImmutableMap" local-only="true"/>
<allow class="com.google.common.collect.ImmutableSet" local-only="true"/>
<!-- is not possible till pkg is not a regexp -->
<!-- <disallow pkg="com.puppycrawl.tools.checkstyle.checks.*"/> -->
<disallow pkg="com.puppycrawl.tools.checkstyle.ant"/>
Expand All @@ -146,7 +132,6 @@
<subpackage name="gui">
<allow pkg="java.awt"/>
<allow pkg="javax.swing"/>
<allow class="com.google.common.collect.ImmutableList" local-only="true"/>
<disallow pkg="com.puppycrawl.tools.checkstyle.checks"/>
<disallow pkg="com.puppycrawl.tools.checkstyle.ant"/>
<disallow pkg="com.puppycrawl.tools.checkstyle.doclets"/>
Expand Down
Expand Up @@ -19,9 +19,11 @@

package com.puppycrawl.tools.checkstyle.checks;

import java.util.Collections;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;

import com.google.common.collect.ImmutableSet;
import com.puppycrawl.tools.checkstyle.api.AbstractCheck;
import com.puppycrawl.tools.checkstyle.api.DetailAST;
import com.puppycrawl.tools.checkstyle.api.TokenTypes;
Expand Down Expand Up @@ -65,15 +67,17 @@ public class FinalParametersCheck extends AbstractCheck {
* <a href="http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html">
* primitive datatypes</a>.
*/
private final Set<Integer> primitiveDataTypes = ImmutableSet.of(
private final Set<Integer> primitiveDataTypes = Collections.unmodifiableSet(
Stream.of(
TokenTypes.LITERAL_BYTE,
TokenTypes.LITERAL_SHORT,
TokenTypes.LITERAL_INT,
TokenTypes.LITERAL_LONG,
TokenTypes.LITERAL_FLOAT,
TokenTypes.LITERAL_DOUBLE,
TokenTypes.LITERAL_BOOLEAN,
TokenTypes.LITERAL_CHAR);
TokenTypes.LITERAL_CHAR)
.collect(Collectors.toSet()));

/**
* Option to ignore primitive types as params.
Expand Down
Expand Up @@ -19,6 +19,7 @@

package com.puppycrawl.tools.checkstyle.checks;

import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
Expand All @@ -27,7 +28,6 @@

import org.apache.commons.beanutils.ConversionException;

import com.google.common.collect.ImmutableList;
import com.puppycrawl.tools.checkstyle.api.AbstractCheck;
import com.puppycrawl.tools.checkstyle.api.AuditEvent;
import com.puppycrawl.tools.checkstyle.api.DetailAST;
Expand Down Expand Up @@ -460,7 +460,7 @@ private static String getStringExpr(DetailAST ast) {
private static List<String> getAnnotationValues(DetailAST ast) {
switch (ast.getType()) {
case TokenTypes.EXPR:
return ImmutableList.of(getStringExpr(ast));
return Collections.singletonList(getStringExpr(ast));

case TokenTypes.ANNOTATION_ARRAY_INIT:
return findAllExpressionsInChildren(ast);
Expand Down
Expand Up @@ -20,15 +20,17 @@
package com.puppycrawl.tools.checkstyle.checks.coding;

import java.util.ArrayDeque;
import java.util.Collections;
import java.util.Deque;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.Map;
import java.util.Queue;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;

import com.google.common.collect.ImmutableSet;
import com.puppycrawl.tools.checkstyle.api.AbstractCheck;
import com.puppycrawl.tools.checkstyle.api.DetailAST;
import com.puppycrawl.tools.checkstyle.api.TokenTypes;
Expand Down Expand Up @@ -101,7 +103,7 @@ public class RequireThisCheck extends AbstractCheck {
public static final String MSG_VARIABLE = "require.this.variable";

/** Set of all declaration tokens. */
private static final ImmutableSet<Integer> DECLARATION_TOKENS = ImmutableSet.of(
private static final Set<Integer> DECLARATION_TOKENS = Collections.unmodifiableSet(Stream.of(
TokenTypes.VARIABLE_DEF,
TokenTypes.CTOR_DEF,
TokenTypes.METHOD_DEF,
Expand All @@ -110,9 +112,9 @@ public class RequireThisCheck extends AbstractCheck {
TokenTypes.INTERFACE_DEF,
TokenTypes.PARAMETER_DEF,
TokenTypes.TYPE_ARGUMENT
);
).collect(Collectors.toSet()));
/** Set of all assign tokens. */
private static final ImmutableSet<Integer> ASSIGN_TOKENS = ImmutableSet.of(
private static final Set<Integer> ASSIGN_TOKENS = Collections.unmodifiableSet(Stream.of(
TokenTypes.ASSIGN,
TokenTypes.PLUS_ASSIGN,
TokenTypes.STAR_ASSIGN,
Expand All @@ -123,19 +125,20 @@ public class RequireThisCheck extends AbstractCheck {
TokenTypes.SL_ASSIGN,
TokenTypes.BAND_ASSIGN,
TokenTypes.BXOR_ASSIGN
);
).collect(Collectors.toSet()));
/** Set of all compound assign tokens. */
private static final ImmutableSet<Integer> COMPOUND_ASSIGN_TOKENS = ImmutableSet.of(
TokenTypes.PLUS_ASSIGN,
TokenTypes.STAR_ASSIGN,
TokenTypes.DIV_ASSIGN,
TokenTypes.MOD_ASSIGN,
TokenTypes.SR_ASSIGN,
TokenTypes.BSR_ASSIGN,
TokenTypes.SL_ASSIGN,
TokenTypes.BAND_ASSIGN,
TokenTypes.BXOR_ASSIGN
);
private static final Set<Integer> COMPOUND_ASSIGN_TOKENS = Collections.unmodifiableSet(
Stream.of(
TokenTypes.PLUS_ASSIGN,
TokenTypes.STAR_ASSIGN,
TokenTypes.DIV_ASSIGN,
TokenTypes.MOD_ASSIGN,
TokenTypes.SR_ASSIGN,
TokenTypes.BSR_ASSIGN,
TokenTypes.SL_ASSIGN,
TokenTypes.BAND_ASSIGN,
TokenTypes.BXOR_ASSIGN
).collect(Collectors.toSet()));

/** Tree of all the parsed frames. */
private Map<DetailAST, AbstractFrame> frames;
Expand Down
Expand Up @@ -21,13 +21,15 @@

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import java.util.stream.Stream;

import antlr.collections.AST;
import com.google.common.collect.ImmutableList;
import com.puppycrawl.tools.checkstyle.api.AbstractCheck;
import com.puppycrawl.tools.checkstyle.api.DetailAST;
import com.puppycrawl.tools.checkstyle.api.FullIdent;
Expand Down Expand Up @@ -246,35 +248,37 @@ public class VisibilityModifierCheck
public static final String MSG_KEY = "variable.notPrivate";

/** Default immutable types canonical names. */
private static final List<String> DEFAULT_IMMUTABLE_TYPES = ImmutableList.of(
"java.lang.String",
"java.lang.Integer",
"java.lang.Byte",
"java.lang.Character",
"java.lang.Short",
"java.lang.Boolean",
"java.lang.Long",
"java.lang.Double",
"java.lang.Float",
"java.lang.StackTraceElement",
"java.math.BigInteger",
"java.math.BigDecimal",
"java.io.File",
"java.util.Locale",
"java.util.UUID",
"java.net.URL",
"java.net.URI",
"java.net.Inet4Address",
"java.net.Inet6Address",
"java.net.InetSocketAddress"
);
private static final List<String> DEFAULT_IMMUTABLE_TYPES = Collections.unmodifiableList(
Stream.of(
"java.lang.String",
"java.lang.Integer",
"java.lang.Byte",
"java.lang.Character",
"java.lang.Short",
"java.lang.Boolean",
"java.lang.Long",
"java.lang.Double",
"java.lang.Float",
"java.lang.StackTraceElement",
"java.math.BigInteger",
"java.math.BigDecimal",
"java.io.File",
"java.util.Locale",
"java.util.UUID",
"java.net.URL",
"java.net.URI",
"java.net.Inet4Address",
"java.net.Inet6Address",
"java.net.InetSocketAddress"
).collect(Collectors.toList()));

/** Default ignore annotations canonical names. */
private static final List<String> DEFAULT_IGNORE_ANNOTATIONS = ImmutableList.of(
"org.junit.Rule",
"org.junit.ClassRule",
"com.google.common.annotations.VisibleForTesting"
);
private static final List<String> DEFAULT_IGNORE_ANNOTATIONS = Collections.unmodifiableList(
Stream.of(
"org.junit.Rule",
"org.junit.ClassRule",
"com.google.common.annotations.VisibleForTesting"
).collect(Collectors.toList()));

/** Name for 'public' access modifier. */
private static final String PUBLIC_ACCESS_MODIFIER = "public";
Expand Down
Expand Up @@ -29,14 +29,13 @@
import java.net.URI;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;
import java.util.regex.Pattern;

import org.apache.commons.beanutils.ConversionException;

import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.io.Closeables;
import com.puppycrawl.tools.checkstyle.api.AbstractFileSetCheck;
import com.puppycrawl.tools.checkstyle.api.CheckstyleException;
Expand Down Expand Up @@ -72,8 +71,9 @@ public abstract class AbstractHeaderCheck extends AbstractFileSetCheck
* Return the header lines to check against.
* @return the header lines to check against.
*/
protected ImmutableList<String> getHeaderLines() {
return ImmutableList.copyOf(readerLines);
protected List<String> getHeaderLines() {
final List<String> copy = new ArrayList<>(readerLines);
return Collections.unmodifiableList(copy);
}

/**
Expand Down Expand Up @@ -194,6 +194,6 @@ protected final void finishLocalSetup() throws CheckstyleException {

@Override
public Set<String> getExternalResourceLocations() {
return ImmutableSet.of(headerFile);
return Collections.singleton(headerFile);
}
}
Expand Up @@ -21,11 +21,11 @@

import java.io.File;
import java.net.URI;
import java.util.Collections;
import java.util.Set;

import org.apache.commons.beanutils.ConversionException;

import com.google.common.collect.ImmutableSet;
import com.puppycrawl.tools.checkstyle.api.AbstractCheck;
import com.puppycrawl.tools.checkstyle.api.CheckstyleException;
import com.puppycrawl.tools.checkstyle.api.DetailAST;
Expand Down Expand Up @@ -143,7 +143,7 @@ else if (currentLeaf != null) {

@Override
public Set<String> getExternalResourceLocations() {
return ImmutableSet.of(fileLocation);
return Collections.singleton(fileLocation);
}

/**
Expand Down
Expand Up @@ -20,13 +20,16 @@
package com.puppycrawl.tools.checkstyle.checks.javadoc;

import java.util.ArrayDeque;
import java.util.Collections;
import java.util.Deque;
import java.util.List;
import java.util.Locale;
import java.util.Set;
import java.util.TreeSet;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import java.util.stream.Stream;

import com.google.common.collect.ImmutableSortedSet;
import com.puppycrawl.tools.checkstyle.api.AbstractCheck;
import com.puppycrawl.tools.checkstyle.api.DetailAST;
import com.puppycrawl.tools.checkstyle.api.FileContents;
Expand Down Expand Up @@ -66,21 +69,23 @@ public class JavadocStyleCheck
public static final String MSG_EXTRA_HTML = "javadoc.extraHtml";

/** HTML tags that do not require a close tag. */
private static final Set<String> SINGLE_TAGS = ImmutableSortedSet.of(
"br", "li", "dt", "dd", "hr", "img", "p", "td", "tr", "th");
private static final Set<String> SINGLE_TAGS = Collections.unmodifiableSortedSet(Stream.of(
"br", "li", "dt", "dd", "hr", "img", "p", "td", "tr", "th")
.collect(Collectors.toCollection(TreeSet::new)));

/** HTML tags that are allowed in java docs.
* From http://www.w3schools.com/tags/default.asp
* The forms and structure tags are not allowed
*/
private static final Set<String> ALLOWED_TAGS = ImmutableSortedSet.of(
"a", "abbr", "acronym", "address", "area", "b", "bdo", "big",
"blockquote", "br", "caption", "cite", "code", "colgroup", "dd",
"del", "div", "dfn", "dl", "dt", "em", "fieldset", "font", "h1",
"h2", "h3", "h4", "h5", "h6", "hr", "i", "img", "ins", "kbd",
"li", "ol", "p", "pre", "q", "samp", "small", "span", "strong",
"style", "sub", "sup", "table", "tbody", "td", "tfoot", "th",
"thead", "tr", "tt", "u", "ul", "var");
private static final Set<String> ALLOWED_TAGS = Collections.unmodifiableSortedSet(Stream.of(
"a", "abbr", "acronym", "address", "area", "b", "bdo", "big",
"blockquote", "br", "caption", "cite", "code", "colgroup", "dd",
"del", "div", "dfn", "dl", "dt", "em", "fieldset", "font", "h1",
"h2", "h3", "h4", "h5", "h6", "hr", "i", "img", "ins", "kbd",
"li", "ol", "p", "pre", "q", "samp", "small", "span", "strong",
"style", "sub", "sup", "table", "tbody", "td", "tfoot", "th",
"thead", "tr", "tt", "u", "ul", "var")
.collect(Collectors.toCollection(TreeSet::new)));

/** The scope to check. */
private Scope scope = Scope.PRIVATE;
Expand Down

0 comments on commit 754ea74

Please sign in to comment.