Start of adding generics.

This commit is contained in:
Oliver Burn 2007-12-15 04:51:10 +00:00
parent 4ebf621616
commit 85a9c1f13f
10 changed files with 121 additions and 111 deletions

View File

@ -123,7 +123,8 @@
<module name="UpperEll"/>
<module name="VisibilityModifier"/>
<module name="WhitespaceAfter"/>
<module name="WhitespaceAround"/>
<!-- Turned off as breaks on generics. Need to fix! -->
<!-- module name="WhitespaceAround"/ -->
<module name="FinalClass"/>
<module name="MissingSwitchDefault"/>
<module name="MagicNumber"/>

View File

@ -18,8 +18,8 @@
////////////////////////////////////////////////////////////////////////////////
package com.puppycrawl.tools.checkstyle.checks;
import java.io.Serializable;
import java.io.ObjectStreamException;
import java.io.Serializable;
import java.util.Map;
/**
@ -43,7 +43,7 @@ public abstract class AbstractOption
protected AbstractOption(String aStrRep)
{
mStrRep = aStrRep.trim().toLowerCase();
final Map strToOpt = getStrToOpt();
final Map<String, AbstractOption> strToOpt = getStrToOpt();
strToOpt.put(mStrRep, this);
}
@ -51,7 +51,7 @@ public abstract class AbstractOption
* Returns the map from string representations to options.
* @return <code>Map</code> from strings to options.
*/
protected abstract Map getStrToOpt();
protected abstract Map<String, AbstractOption> getStrToOpt();
/**
* Returns the option specified by a string representation. If no
@ -62,13 +62,14 @@ public abstract class AbstractOption
*/
public AbstractOption decode(String aStrRep)
{
final Map strToOpt = getStrToOpt();
return (AbstractOption) strToOpt.get(aStrRep.trim().toLowerCase());
final Map<String, AbstractOption> strToOpt = getStrToOpt();
return strToOpt.get(aStrRep.trim().toLowerCase());
}
/**
* {@inheritDoc}
**/
@Override
public String toString()
{
return mStrRep;

View File

@ -21,9 +21,8 @@ package com.puppycrawl.tools.checkstyle.checks;
import com.puppycrawl.tools.checkstyle.api.DetailAST;
import com.puppycrawl.tools.checkstyle.api.FullIdent;
import com.puppycrawl.tools.checkstyle.api.TokenTypes;
import java.util.List;
import java.util.ArrayList;
import java.util.List;
/**
* Contains utility methods for the checks.
@ -274,12 +273,12 @@ public final class CheckUtils
* @param aNode the parameterised AST node
* @return a list of type parameter names
*/
public static List getTypeParameterNames(final DetailAST aNode)
public static List<String> getTypeParameterNames(final DetailAST aNode)
{
final DetailAST typeParameters =
aNode.findFirstToken(TokenTypes.TYPE_PARAMETERS);
final List typeParamNames = new ArrayList();
final List<String> typeParamNames = new ArrayList<String>();
if (typeParameters != null) {
final DetailAST typeParam =
typeParameters.findFirstToken(TokenTypes.TYPE_PARAMETER);
@ -304,12 +303,12 @@ public final class CheckUtils
* @param aNode the parameterised AST node
* @return a list of type parameter names
*/
public static List getTypeParameters(final DetailAST aNode)
public static List<DetailAST> getTypeParameters(final DetailAST aNode)
{
final DetailAST typeParameters =
aNode.findFirstToken(TokenTypes.TYPE_PARAMETERS);
final List typeParams = new ArrayList();
final List<DetailAST> typeParams = new ArrayList<DetailAST>();
if (typeParameters != null) {
final DetailAST typeParam =
typeParameters.findFirstToken(TokenTypes.TYPE_PARAMETER);

View File

@ -25,7 +25,6 @@ import java.io.LineNumberReader;
import java.io.Reader;
import java.io.StringReader;
import java.util.ArrayList;
import org.apache.commons.beanutils.ConversionException;
/**
@ -149,7 +148,7 @@ class HeaderInfo
private void loadHeader(final Reader aHeaderReader) throws IOException
{
final LineNumberReader lnr = new LineNumberReader(aHeaderReader);
final ArrayList lines = new ArrayList();
final ArrayList<String> lines = new ArrayList<String>();
while (true) {
final String l = lnr.readLine();
if (l == null) {
@ -157,7 +156,7 @@ class HeaderInfo
}
lines.add(l);
}
mHeaderLines = (String[]) lines.toArray(new String[lines.size()]);
mHeaderLines = lines.toArray(new String[lines.size()]);
postprocessHeaderLines();
}

View File

@ -18,18 +18,7 @@
////////////////////////////////////////////////////////////////////////////////
package com.puppycrawl.tools.checkstyle.checks.javadoc;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import antlr.collections.AST;
import com.puppycrawl.tools.checkstyle.api.DetailAST;
import com.puppycrawl.tools.checkstyle.api.FileContents;
import com.puppycrawl.tools.checkstyle.api.FullIdent;
@ -40,6 +29,14 @@ import com.puppycrawl.tools.checkstyle.api.TokenTypes;
import com.puppycrawl.tools.checkstyle.api.Utils;
import com.puppycrawl.tools.checkstyle.checks.AbstractTypeAwareCheck;
import com.puppycrawl.tools.checkstyle.checks.CheckUtils;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Checks the Javadoc of a method or constructor.
@ -256,6 +253,7 @@ public class JavadocMethodCheck extends AbstractTypeAwareCheck
}
/** {@inheritDoc} */
@Override
public int[] getDefaultTokens()
{
return new int[] {TokenTypes.PACKAGE_DEF, TokenTypes.IMPORT,
@ -266,6 +264,7 @@ public class JavadocMethodCheck extends AbstractTypeAwareCheck
}
/** {@inheritDoc} */
@Override
public int[] getAcceptableTokens()
{
return new int[] {TokenTypes.METHOD_DEF, TokenTypes.CTOR_DEF,
@ -278,6 +277,7 @@ public class JavadocMethodCheck extends AbstractTypeAwareCheck
*
* @param aAST the tree node for the method or constructor.
*/
@Override
protected final void processAST(DetailAST aAST)
{
final Scope theScope = calculateScope(aAST);
@ -301,6 +301,7 @@ public class JavadocMethodCheck extends AbstractTypeAwareCheck
*
* @param aIdent class name for which we can no load class.
*/
@Override
protected final void logLoadError(Token aIdent)
{
logLoadErrorImpl(aIdent.getLineNo(), aIdent.getColumnNo(),
@ -352,18 +353,18 @@ public class JavadocMethodCheck extends AbstractTypeAwareCheck
*/
private void checkComment(DetailAST aAST, TextBlock aComment, Scope aScope)
{
final List tags = getMethodTags(aComment);
final List<JavadocTag> tags = getMethodTags(aComment);
if (hasShortCircuitTag(aAST, tags, aScope)) {
return;
}
Iterator it = tags.iterator();
Iterator<JavadocTag> it = tags.iterator();
if (aAST.getType() != TokenTypes.ANNOTATION_FIELD_DEF) {
// Check for inheritDoc
boolean hasInheritDocTag = false;
while (it.hasNext() && !hasInheritDocTag) {
hasInheritDocTag |= ((JavadocTag) it.next()).isInheritDocTag();
hasInheritDocTag |= (it.next()).isInheritDocTag();
}
checkParamTags(tags, aAST, !hasInheritDocTag);
@ -376,7 +377,7 @@ public class JavadocMethodCheck extends AbstractTypeAwareCheck
// Dump out all unused tags
it = tags.iterator();
while (it.hasNext()) {
final JavadocTag jt = (JavadocTag) it.next();
final JavadocTag jt = it.next();
if (!jt.isSeeOrInheritDocTag()) {
log(jt.getLineNo(), "javadoc.unusedTagGeneral");
}
@ -392,12 +393,12 @@ public class JavadocMethodCheck extends AbstractTypeAwareCheck
* @param aScope the scope of the construct
* @return true if the construct has a short circuit tag.
*/
private boolean hasShortCircuitTag(final DetailAST aAST, final List aTags,
final Scope aScope)
private boolean hasShortCircuitTag(final DetailAST aAST,
final List<JavadocTag> aTags, final Scope aScope)
{
// Check if it contains {@inheritDoc} tag
if ((aTags.size() != 1)
|| !((JavadocTag) aTags.get(0)).isInheritDocTag())
|| !(aTags.get(0)).isInheritDocTag())
{
return false;
}
@ -435,10 +436,10 @@ public class JavadocMethodCheck extends AbstractTypeAwareCheck
* @return the tags found
* @param aComment the Javadoc comment
*/
private List getMethodTags(TextBlock aComment)
private List<JavadocTag> getMethodTags(TextBlock aComment)
{
final String[] lines = aComment.getText();
final List tags = new ArrayList();
final List<JavadocTag> tags = new ArrayList<JavadocTag>();
int currentLine = aComment.getStartLineNo() - 1;
for (int i = 0; i < lines.length; i++) {
@ -541,10 +542,10 @@ public class JavadocMethodCheck extends AbstractTypeAwareCheck
* @param aAST the method node.
* @return the list of parameter nodes for aAST.
*/
private List getParameters(DetailAST aAST)
private List<DetailAST> getParameters(DetailAST aAST)
{
final DetailAST params = aAST.findFirstToken(TokenTypes.PARAMETERS);
final List retVal = new ArrayList();
final List<DetailAST> retVal = new ArrayList<DetailAST>();
DetailAST child = (DetailAST) params.getFirstChild();
while (child != null) {
@ -563,9 +564,9 @@ public class JavadocMethodCheck extends AbstractTypeAwareCheck
* @param aAST the method node.
* @return the list of exception nodes for aAST.
*/
private List getThrows(DetailAST aAST)
private List<ExceptionInfo> getThrows(DetailAST aAST)
{
final List retVal = new ArrayList();
final List<ExceptionInfo> retVal = new ArrayList<ExceptionInfo>();
final DetailAST throwsAST = aAST
.findFirstToken(TokenTypes.LITERAL_THROWS);
if (throwsAST != null) {
@ -593,16 +594,17 @@ public class JavadocMethodCheck extends AbstractTypeAwareCheck
* @param aReportExpectedTags whether we should report if do not find
* expected tag
*/
private void checkParamTags(final List aTags, final DetailAST aParent,
boolean aReportExpectedTags)
private void checkParamTags(final List<JavadocTag> aTags,
final DetailAST aParent, boolean aReportExpectedTags)
{
final List params = getParameters(aParent);
final List typeParams = CheckUtils.getTypeParameters(aParent);
final List<DetailAST> params = getParameters(aParent);
final List<DetailAST> typeParams = CheckUtils
.getTypeParameters(aParent);
// Loop over the tags, checking to see they exist in the params.
final ListIterator tagIt = aTags.listIterator();
final ListIterator<JavadocTag> tagIt = aTags.listIterator();
while (tagIt.hasNext()) {
final JavadocTag tag = (JavadocTag) tagIt.next();
final JavadocTag tag = tagIt.next();
if (!tag.isParamTag()) {
continue;
@ -613,9 +615,9 @@ public class JavadocMethodCheck extends AbstractTypeAwareCheck
boolean found = false;
// Loop looking for matching param
final Iterator paramIt = params.iterator();
final Iterator<DetailAST> paramIt = params.iterator();
while (paramIt.hasNext()) {
final DetailAST param = (DetailAST) paramIt.next();
final DetailAST param = paramIt.next();
if (param.getText().equals(tag.getArg1())) {
found = true;
paramIt.remove();
@ -625,9 +627,9 @@ public class JavadocMethodCheck extends AbstractTypeAwareCheck
if (tag.getArg1().startsWith("<") && tag.getArg1().endsWith(">")) {
// Loop looking for matching type param
final Iterator typeParamsIt = typeParams.iterator();
final Iterator<DetailAST> typeParamsIt = typeParams.iterator();
while (typeParamsIt.hasNext()) {
final DetailAST typeParam = (DetailAST) typeParamsIt.next();
final DetailAST typeParam = typeParamsIt.next();
if (typeParam.findFirstToken(TokenTypes.IDENT).getText()
.equals(
tag.getArg1().substring(1,
@ -651,15 +653,15 @@ public class JavadocMethodCheck extends AbstractTypeAwareCheck
// Now dump out all type parameters/parameters without tags :- unless
// the user has chosen to suppress these problems
if (!mAllowMissingParamTags && aReportExpectedTags) {
final Iterator paramIt = params.iterator();
final Iterator<DetailAST> paramIt = params.iterator();
while (paramIt.hasNext()) {
final DetailAST param = (DetailAST) paramIt.next();
final DetailAST param = paramIt.next();
log(param, "javadoc.expectedTag", "@param", param.getText());
}
final Iterator typeParamsIt = typeParams.iterator();
final Iterator<DetailAST> typeParamsIt = typeParams.iterator();
while (typeParamsIt.hasNext()) {
final DetailAST typeParam = (DetailAST) typeParamsIt.next();
final DetailAST typeParam = typeParamsIt.next();
log(typeParam, "javadoc.expectedTag", "@param", "<"
+ typeParam.findFirstToken(TokenTypes.IDENT).getText()
+ ">");
@ -696,15 +698,15 @@ public class JavadocMethodCheck extends AbstractTypeAwareCheck
* @param aReportExpectedTags whether we should report if do not find
* expected tag
*/
private void checkReturnTag(List aTags, int aLineNo,
private void checkReturnTag(List<JavadocTag> aTags, int aLineNo,
boolean aReportExpectedTags)
{
// Loop over tags finding return tags. After the first one, report an
// error.
boolean found = false;
final ListIterator it = aTags.listIterator();
final ListIterator<JavadocTag> it = aTags.listIterator();
while (it.hasNext()) {
final JavadocTag jt = (JavadocTag) it.next();
final JavadocTag jt = it.next();
if (jt.isReturnTag()) {
if (found) {
log(jt.getLineNo(), jt.getColumnNo(),
@ -730,14 +732,15 @@ public class JavadocMethodCheck extends AbstractTypeAwareCheck
* @param aReportExpectedTags whether we should report if do not find
* expected tag
*/
private void checkThrowsTags(List aTags, List aThrows,
boolean aReportExpectedTags)
private void checkThrowsTags(List<JavadocTag> aTags,
List<ExceptionInfo> aThrows, boolean aReportExpectedTags)
{
// Loop over the tags, checking to see they exist in the throws.
final Set foundThrows = new HashSet(); //used for performance only
final ListIterator tagIt = aTags.listIterator();
// The foundThrows used for performance only
final Set<String> foundThrows = new HashSet<String>();
final ListIterator<JavadocTag> tagIt = aTags.listIterator();
while (tagIt.hasNext()) {
final JavadocTag tag = (JavadocTag) tagIt.next();
final JavadocTag tag = tagIt.next();
if (!tag.isThrowsTag()) {
continue;
@ -753,9 +756,9 @@ public class JavadocMethodCheck extends AbstractTypeAwareCheck
getCurrentClassName());
boolean found = foundThrows.contains(documentedEx);
final ListIterator throwIt = aThrows.listIterator();
final ListIterator<ExceptionInfo> throwIt = aThrows.listIterator();
while (!found && throwIt.hasNext()) {
final ExceptionInfo ei = (ExceptionInfo) throwIt.next();
final ExceptionInfo ei = throwIt.next();
if (documentedCI.getClazz() == ei.getClazz()) {
found = true;
@ -785,9 +788,9 @@ public class JavadocMethodCheck extends AbstractTypeAwareCheck
// Now dump out all throws without tags :- unless
// the user has chosen to suppress these problems
if (!mAllowMissingThrowsTags && aReportExpectedTags) {
final ListIterator throwIt = aThrows.listIterator();
final ListIterator<ExceptionInfo> throwIt = aThrows.listIterator();
while (throwIt.hasNext()) {
final ExceptionInfo ei = (ExceptionInfo) throwIt.next();
final ExceptionInfo ei = throwIt.next();
if (!ei.isFound()) {
final Token fi = ei.getName();
log(fi.getLineNo(), fi.getColumnNo(),
@ -915,7 +918,7 @@ public class JavadocMethodCheck extends AbstractTypeAwareCheck
/** does the exception have throws tag associated with. */
private boolean mFound;
/** class information associated with this exception. */
private ClassInfo mClassInfo;
private final ClassInfo mClassInfo;
/**
* Creates new instance for <code>FullIdent</code>.
@ -947,7 +950,7 @@ public class JavadocMethodCheck extends AbstractTypeAwareCheck
}
/** @return class for this exception */
final Class getClazz()
final Class<?> getClazz()
{
return mClassInfo.getClazz();
}

View File

@ -18,11 +18,6 @@
////////////////////////////////////////////////////////////////////////////////
package com.puppycrawl.tools.checkstyle.checks.javadoc;
import java.util.Stack;
import java.util.List;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
import com.puppycrawl.tools.checkstyle.api.Check;
import com.puppycrawl.tools.checkstyle.api.DetailAST;
import com.puppycrawl.tools.checkstyle.api.FileContents;
@ -31,6 +26,10 @@ import com.puppycrawl.tools.checkstyle.api.ScopeUtils;
import com.puppycrawl.tools.checkstyle.api.TextBlock;
import com.puppycrawl.tools.checkstyle.api.TokenTypes;
import com.puppycrawl.tools.checkstyle.checks.CheckUtils;
import java.util.List;
import java.util.Stack;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
/**
* Custom Checkstyle Check to validate Javadoc.
@ -78,6 +77,7 @@ public class JavadocStyleCheck
private boolean mCheckEmptyJavadoc;
/** {@inheritDoc} */
@Override
public int[] getDefaultTokens()
{
return new int[] {
@ -94,6 +94,7 @@ public class JavadocStyleCheck
}
/** {@inheritDoc} */
@Override
public void visitToken(DetailAST aAST)
{
if (shouldCheck(aAST)) {
@ -295,9 +296,9 @@ public class JavadocStyleCheck
private void checkHtml(final DetailAST aAST, final TextBlock aComment)
{
final int lineno = aComment.getStartLineNo();
final Stack htmlStack = new Stack();
final Stack<HtmlTag> htmlStack = new Stack<HtmlTag>();
final String[] text = aComment.getText();
final List typeParameters =
final List<String> typeParameters =
CheckUtils.getTypeParameterNames(aAST);
TagParser parser = null;
@ -338,7 +339,7 @@ public class JavadocStyleCheck
// Identify any tags left on the stack.
String lastFound = ""; // Skip multiples, like <b>...<b>
for (int i = 0; i < htmlStack.size(); i++) {
final HtmlTag htag = (HtmlTag) htmlStack.elementAt(i);
final HtmlTag htag = htmlStack.elementAt(i);
if (!isSingleTag(htag)
&& !htag.getId().equals(lastFound)
&& !typeParameters.contains(htag.getId()))
@ -358,26 +359,26 @@ public class JavadocStyleCheck
* @param aHtmlStack the stack of opened HTML tags.
* @param aToken the current HTML tag name that has been closed.
*/
private void checkUnclosedTags(Stack aHtmlStack, String aToken)
private void checkUnclosedTags(Stack<HtmlTag> aHtmlStack, String aToken)
{
final Stack unclosedTags = new Stack();
HtmlTag lastOpenTag = (HtmlTag) aHtmlStack.pop();
final Stack<HtmlTag> unclosedTags = new Stack<HtmlTag>();
HtmlTag lastOpenTag = aHtmlStack.pop();
while (!aToken.equalsIgnoreCase(lastOpenTag.getId())) {
// Find unclosed elements. Put them on a stack so the
// output order won't be back-to-front.
if (isSingleTag(lastOpenTag)) {
lastOpenTag = (HtmlTag) aHtmlStack.pop();
lastOpenTag = aHtmlStack.pop();
}
else {
unclosedTags.push(lastOpenTag);
lastOpenTag = (HtmlTag) aHtmlStack.pop();
lastOpenTag = aHtmlStack.pop();
}
}
// Output the unterminated tags, if any
String lastFound = ""; // Skip multiples, like <b>..<b>
for (int i = 0; i < unclosedTags.size(); i++) {
lastOpenTag = (HtmlTag) unclosedTags.get(i);
lastOpenTag = unclosedTags.get(i);
if (lastOpenTag.getId().equals(lastFound)) {
continue;
}
@ -419,7 +420,7 @@ public class JavadocStyleCheck
* @return <code>false</code> if a previous open tag was found
* for the token.
*/
private boolean isExtraHtml(String aToken, Stack aHtmlStack)
private boolean isExtraHtml(String aToken, Stack<HtmlTag> aHtmlStack)
{
boolean isExtra = true;
for (int i = 0; i < aHtmlStack.size(); i++) {
@ -427,7 +428,7 @@ public class JavadocStyleCheck
// The loop is needed in case there are unclosed
// tags on the stack. In that case, the stack would
// not be empty, but this tag would still be extra.
final HtmlTag td = (HtmlTag) aHtmlStack.elementAt(i);
final HtmlTag td = aHtmlStack.elementAt(i);
if (aToken.equalsIgnoreCase(td.getId())) {
isExtra = false;
break;

View File

@ -128,6 +128,7 @@ public class JavadocTypeCheck
}
/** {@inheritDoc} */
@Override
public int[] getDefaultTokens()
{
return new int[] {
@ -139,6 +140,7 @@ public class JavadocTypeCheck
}
/** {@inheritDoc} */
@Override
public void visitToken(DetailAST aAST)
{
if (shouldCheck(aAST)) {
@ -150,23 +152,23 @@ public class JavadocTypeCheck
}
else if (ScopeUtils.isOuterMostType(aAST)) {
// don't check author/version for inner classes
final List tags = getJavadocTags(cmt);
final List<JavadocTag> tags = getJavadocTags(cmt);
checkTag(lineNo, tags, "author",
mAuthorFormatPattern, mAuthorFormat);
checkTag(lineNo, tags, "version",
mVersionFormatPattern, mVersionFormat);
final List typeParamNames =
final List<String> typeParamNames =
CheckUtils.getTypeParameterNames(aAST);
if (!mAllowMissingParamTags) {
//Check type parameters that should exist, do
for (final Iterator typeParamNameIt =
for (final Iterator<String> typeParamNameIt =
typeParamNames.iterator();
typeParamNameIt.hasNext();)
{
checkTypeParamTag(
lineNo, tags, (String) typeParamNameIt.next());
lineNo, tags, typeParamNameIt.next());
}
}
@ -202,10 +204,10 @@ public class JavadocTypeCheck
* @param aCmt teh Javadoc comment to process.
* @return all standalone tags from the given javadoc.
*/
private List getJavadocTags(TextBlock aCmt)
private List<JavadocTag> getJavadocTags(TextBlock aCmt)
{
final String[] text = aCmt.getText();
final List tags = new ArrayList();
final List<JavadocTag> tags = new ArrayList<JavadocTag>();
Pattern tagPattern = Utils.getPattern("/\\*{2,}\\s*@(\\p{Alpha}+)\\s");
for (int i = 0; i < text.length; i++) {
final String s = text[i];
@ -236,7 +238,7 @@ public class JavadocTypeCheck
* @param aFormatPattern regexp for the tag value.
* @param aFormat pattern for the tag value.
*/
private void checkTag(int aLineNo, List aTags, String aTag,
private void checkTag(int aLineNo, List<JavadocTag> aTags, String aTag,
Pattern aFormatPattern, String aFormat)
{
if (aFormatPattern == null) {
@ -245,7 +247,7 @@ public class JavadocTypeCheck
int tagCount = 0;
for (int i = aTags.size() - 1; i >= 0; i--) {
final JavadocTag tag = (JavadocTag) aTags.get(i);
final JavadocTag tag = aTags.get(i);
if (tag.getTag().equals(aTag)) {
tagCount++;
if (!aFormatPattern.matcher(tag.getArg1()).find()) {
@ -265,12 +267,12 @@ public class JavadocTypeCheck
* @param aTags tags from the Javadoc comment for the type definition.
* @param aTypeParamName the name of the type parameter
*/
private void checkTypeParamTag(
final int aLineNo, final List aTags, final String aTypeParamName)
private void checkTypeParamTag(final int aLineNo,
final List<JavadocTag> aTags, final String aTypeParamName)
{
boolean found = false;
for (int i = aTags.size() - 1; i >= 0; i--) {
final JavadocTag tag = (JavadocTag) aTags.get(i);
final JavadocTag tag = aTags.get(i);
if (tag.getTag().equals("param")
&& (tag.getArg1() != null)
&& (tag.getArg1().indexOf("<" + aTypeParamName + ">") == 0))
@ -289,12 +291,12 @@ public class JavadocTypeCheck
* @param aTypeParamNames names of type parameters
*/
private void checkUnusedTypeParamTags(
final List aTags,
final List aTypeParamNames)
final List<JavadocTag> aTags,
final List<String> aTypeParamNames)
{
final Pattern pattern = Utils.getPattern("\\s*<([^>]+)>.*");
for (int i = aTags.size() - 1; i >= 0; i--) {
final JavadocTag tag = (JavadocTag) aTags.get(i);
final JavadocTag tag = aTags.get(i);
if (tag.getTag().equals("param")) {
if (tag.getArg1() != null) {

View File

@ -18,13 +18,12 @@
////////////////////////////////////////////////////////////////////////////////
package com.puppycrawl.tools.checkstyle.checks.javadoc;
import com.puppycrawl.tools.checkstyle.api.AbstractFileSetCheck;
import com.puppycrawl.tools.checkstyle.api.MessageDispatcher;
import java.io.File;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.HashSet;
import com.puppycrawl.tools.checkstyle.api.MessageDispatcher;
import com.puppycrawl.tools.checkstyle.api.AbstractFileSetCheck;
/**
* Checks that all packages have a package documentation.
@ -51,9 +50,9 @@ public class PackageHtmlCheck extends AbstractFileSetCheck
public void process(File[] aFiles)
{
final File[] javaFiles = filter(aFiles);
final Set directories = getParentDirs(javaFiles);
for (final Iterator it = directories.iterator(); it.hasNext();) {
final File dir = (File) it.next();
final Set<File> directories = getParentDirs(javaFiles);
for (final Iterator<File> it = directories.iterator(); it.hasNext();) {
final File dir = it.next();
final File packageHtml = new File(dir, "package.html");
final MessageDispatcher dispatcher = getMessageDispatcher();
final String path = packageHtml.getPath();
@ -71,9 +70,9 @@ public class PackageHtmlCheck extends AbstractFileSetCheck
* @param aFiles s set of files
* @return the set of parent directories of the given files
*/
protected final Set getParentDirs(File[] aFiles)
protected final Set<File> getParentDirs(File[] aFiles)
{
final Set directories = new HashSet();
final Set<File> directories = new HashSet<File>();
for (int i = 0; i < aFiles.length; i++) {
final File f = aFiles[i].getAbsoluteFile();
if (f.getName().endsWith(".java")) {

View File

@ -34,7 +34,7 @@ import java.util.List;
class TagParser
{
/** List of HtmlTags found on the input line of text. */
private final List mTags = new LinkedList();
private final List<HtmlTag> mTags = new LinkedList<HtmlTag>();
/**
* Constructs a TagParser and finds the first tag if any.
@ -54,7 +54,7 @@ class TagParser
*/
public HtmlTag nextTag()
{
return (HtmlTag) mTags.remove(0);
return mTags.remove(0);
}
/**

View File

@ -39,7 +39,7 @@ public final class ExecutableStatementCountCheck
private int mMax;
/** Stack of method contexts. */
private final Stack mContextStack = new Stack();
private final Stack<Context> mContextStack = new Stack<Context>();
/** Current method context. */
private Context mContext;
@ -51,6 +51,7 @@ public final class ExecutableStatementCountCheck
}
/** {@inheritDoc} */
@Override
public int[] getDefaultTokens()
{
return new int[] {
@ -63,6 +64,7 @@ public final class ExecutableStatementCountCheck
}
/** {@inheritDoc} */
@Override
public int[] getRequiredTokens()
{
return new int[] {TokenTypes.SLIST};
@ -87,6 +89,7 @@ public final class ExecutableStatementCountCheck
}
/** {@inheritDoc} */
@Override
public void beginTree(DetailAST aRootAST)
{
mContext = null;
@ -94,6 +97,7 @@ public final class ExecutableStatementCountCheck
}
/** {@inheritDoc} */
@Override
public void visitToken(DetailAST aAST)
{
switch (aAST.getType()) {
@ -112,6 +116,7 @@ public final class ExecutableStatementCountCheck
}
/** {@inheritDoc} */
@Override
public void leaveToken(DetailAST aAST)
{
switch (aAST.getType()) {
@ -155,7 +160,7 @@ public final class ExecutableStatementCountCheck
new Integer(count),
new Integer(getMax()));
}
mContext = (Context) mContextStack.pop();
mContext = mContextStack.pop();
}
/**
@ -193,7 +198,7 @@ public final class ExecutableStatementCountCheck
private class Context
{
/** Member AST node. */
private DetailAST mAST;
private final DetailAST mAST;
/** Counter for context elements. */
private int mCount;