diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocMethodCheck.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocMethodCheck.java
index 557160dff..05110820c 100644
--- a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocMethodCheck.java
+++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocMethodCheck.java
@@ -138,6 +138,9 @@ public class JavadocMethodCheck
/** the visibility scope where Javadoc comments are checked **/
private Scope mScope = Scope.PRIVATE;
+ /** the visibility scope where Javadoc comments shouldn't be checked **/
+ private Scope mExcludeScope;
+
/**
* controls whether to allow documented exceptions that
* are not declared if they are a subclass of
@@ -182,6 +185,15 @@ public class JavadocMethodCheck
mScope = Scope.getInstance(aFrom);
}
+ /**
+ * Set the excludeScope.
+ * @param aScope a String value
+ */
+ public void setExcludeScope(String aScope)
+ {
+ mExcludeScope = Scope.getInstance(aScope);
+ }
+
/**
* controls whether to allow documented exceptions that
* are not declared if they are a subclass of
@@ -271,32 +283,38 @@ public class JavadocMethodCheck
*/
protected final void processAST(DetailAST aAST)
{
- final DetailAST mods = aAST.findFirstToken(TokenTypes.MODIFIERS);
- final Scope declaredScope = ScopeUtils.getScopeFromMods(mods);
- final Scope targetScope =
- ScopeUtils.inInterfaceBlock(aAST)
- ? Scope.PUBLIC
- : declaredScope;
+ if (shouldCheck(aAST)) {
+ final FileContents contents = getFileContents();
+ final TextBlock cmt = contents.getJavadocBefore(aAST.getLineNo());
- if (targetScope.isIn(mScope)) {
- final Scope surroundingScope =
- ScopeUtils.getSurroundingScope(aAST);
-
- if (surroundingScope.isIn(mScope)) {
- final FileContents contents = getFileContents();
- final TextBlock cmt =
- contents.getJavadocBefore(aAST.getLineNo());
-
- if (cmt == null) {
- log(aAST, "javadoc.missing");
- }
- else {
- checkComment(aAST, cmt);
- }
+ if (cmt == null) {
+ log(aAST, "javadoc.missing");
+ }
+ else {
+ checkComment(aAST, cmt);
}
}
}
+ /**
+ * Whether we should check this node.
+ * @param aAST a given node.
+ * @return whether we should check a given node.
+ */
+ private boolean shouldCheck(final DetailAST aAST)
+ {
+ final DetailAST mods = aAST.findFirstToken(TokenTypes.MODIFIERS);
+ final Scope declaredScope = ScopeUtils.getScopeFromMods(mods);
+ final Scope scope =
+ ScopeUtils.inInterfaceBlock(aAST) ? Scope.PUBLIC : declaredScope;
+ final Scope surroundingScope = ScopeUtils.getSurroundingScope(aAST);
+
+ return scope.isIn(mScope) && surroundingScope.isIn(mScope)
+ && ((mExcludeScope == null)
+ || !scope.isIn(mExcludeScope)
+ || !surroundingScope.isIn(mExcludeScope));
+ }
+
/**
* Checks the Javadoc for a method.
* @param aAST the token for the method
diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocStyleCheck.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocStyleCheck.java
index 227fbc8ab..8761bfbaa 100755
--- a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocStyleCheck.java
+++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocStyleCheck.java
@@ -69,6 +69,9 @@ public class JavadocStyleCheck
/** The scope to check. */
private Scope mScope = Scope.PRIVATE;
+ /** the visibility scope where Javadoc comments shouldn't be checked **/
+ private Scope mExcludeScope;
+
/** Regular expression for matching the end of a sentence. */
private RE mEndOfSentenceRE;
@@ -109,32 +112,40 @@ public class JavadocStyleCheck
*/
public void visitToken(DetailAST aAST)
{
- if (!ScopeUtils.inCodeBlock(aAST)) {
- final DetailAST mods =
- aAST.findFirstToken(TokenTypes.MODIFIERS);
- final Scope declaredScope = ScopeUtils.getScopeFromMods(mods);
- final Scope variableScope =
- ScopeUtils.inInterfaceBlock(aAST)
- ? Scope.PUBLIC
- : declaredScope;
+ if (shouldCheck(aAST)) {
+ final FileContents contents = getFileContents();
+ final TextBlock cmt =
+ contents.getJavadocBefore(aAST.getLineNo());
- if (variableScope.isIn(mScope)) {
- final Scope surroundingScope =
- ScopeUtils.getSurroundingScope(aAST);
-
- if ((surroundingScope == null)
- || surroundingScope.isIn(mScope))
- {
- final FileContents contents = getFileContents();
- final TextBlock cmt =
- contents.getJavadocBefore(aAST.getLineNo());
-
- checkComment(cmt);
- }
- }
+ checkComment(cmt);
}
}
+ /**
+ * Whether we should check this node.
+ * @param aAST a given node.
+ * @return whether we should check a given node.
+ */
+ private boolean shouldCheck(final DetailAST aAST)
+ {
+ if (ScopeUtils.inCodeBlock(aAST)) {
+ return false;
+ }
+
+ final DetailAST mods = aAST.findFirstToken(TokenTypes.MODIFIERS);
+ final Scope declaredScope = ScopeUtils.getScopeFromMods(mods);
+ final Scope scope =
+ ScopeUtils.inInterfaceBlock(aAST) ? Scope.PUBLIC : declaredScope;
+ final Scope surroundingScope = ScopeUtils.getSurroundingScope(aAST);
+
+ return scope.isIn(mScope)
+ && ((surroundingScope == null) || surroundingScope.isIn(mScope))
+ && ((mExcludeScope == null)
+ || !scope.isIn(mExcludeScope)
+ || (surroundingScope != null)
+ && !surroundingScope.isIn(mExcludeScope));
+ }
+
/**
* Performs the various checks agains the Javadoc comment.
*
@@ -445,6 +456,15 @@ public class JavadocStyleCheck
mScope = Scope.getInstance(aFrom);
}
+ /**
+ * Set the excludeScope.
+ * @param aScope a String value
+ */
+ public void setExcludeScope(String aScope)
+ {
+ mExcludeScope = Scope.getInstance(aScope);
+ }
+
/**
* Returns a regular expression for matching the end of a sentence.
*
diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocTypeCheck.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocTypeCheck.java
index 7a5278ade..b5482a246 100644
--- a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocTypeCheck.java
+++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocTypeCheck.java
@@ -85,6 +85,8 @@ public class JavadocTypeCheck
{
/** the scope to check for */
private Scope mScope = Scope.PRIVATE;
+ /** the visibility scope where Javadoc comments shouldn't be checked **/
+ private Scope mExcludeScope;
/** compiled regexp to match author tag content **/
private RE mAuthorFormatRE;
/** compiled regexp to match version tag content **/
@@ -103,6 +105,15 @@ public class JavadocTypeCheck
mScope = Scope.getInstance(aFrom);
}
+ /**
+ * Set the excludeScope.
+ * @param aScope a String value
+ */
+ public void setExcludeScope(String aScope)
+ {
+ mExcludeScope = Scope.getInstance(aScope);
+ }
+
/**
* Set the author tag pattern.
* @param aFormat a String value
@@ -147,31 +158,45 @@ public class JavadocTypeCheck
/** @see com.puppycrawl.tools.checkstyle.api.Check */
public void visitToken(DetailAST aAST)
{
- final DetailAST mods = aAST.findFirstToken(TokenTypes.MODIFIERS);
- final Scope declaredScope = ScopeUtils.getScopeFromMods(mods);
- final Scope typeScope =
- ScopeUtils.inInterfaceBlock(aAST) ? Scope.PUBLIC : declaredScope;
- if (typeScope.isIn(mScope)) {
- final Scope surroundingScope = ScopeUtils.getSurroundingScope(aAST);
- if ((surroundingScope == null) || surroundingScope.isIn(mScope)) {
- final FileContents contents = getFileContents();
- final int lineNo = aAST.getLineNo();
- final TextBlock cmt = contents.getJavadocBefore(lineNo);
- if (cmt == null) {
- log(lineNo, "javadoc.missing");
- }
- else if (ScopeUtils.isOuterMostType(aAST)) {
- // don't check author/version for inner classes
- Vector tags = getJavadocTags(cmt);
- checkTag(lineNo, tags, "author",
- mAuthorFormatRE, mAuthorFormat);
- checkTag(lineNo, tags, "version",
- mVersionFormatRE, mVersionFormat);
- }
+ if (shouldCheck(aAST)) {
+ final FileContents contents = getFileContents();
+ final int lineNo = aAST.getLineNo();
+ final TextBlock cmt = contents.getJavadocBefore(lineNo);
+ if (cmt == null) {
+ log(lineNo, "javadoc.missing");
+ }
+ else if (ScopeUtils.isOuterMostType(aAST)) {
+ // don't check author/version for inner classes
+ Vector tags = getJavadocTags(cmt);
+ checkTag(lineNo, tags, "author",
+ mAuthorFormatRE, mAuthorFormat);
+ checkTag(lineNo, tags, "version",
+ mVersionFormatRE, mVersionFormat);
}
}
}
+ /**
+ * Whether we should check this node.
+ * @param aAST a given node.
+ * @return whether we should check a given node.
+ */
+ private boolean shouldCheck(final DetailAST aAST)
+ {
+ final DetailAST mods = aAST.findFirstToken(TokenTypes.MODIFIERS);
+ final Scope declaredScope = ScopeUtils.getScopeFromMods(mods);
+ final Scope scope =
+ ScopeUtils.inInterfaceBlock(aAST) ? Scope.PUBLIC : declaredScope;
+ final Scope surroundingScope = ScopeUtils.getSurroundingScope(aAST);
+
+ return scope.isIn(mScope)
+ && ((surroundingScope == null) || surroundingScope.isIn(mScope))
+ && ((mExcludeScope == null)
+ || !scope.isIn(mExcludeScope)
+ || (surroundingScope != null)
+ && !surroundingScope.isIn(mExcludeScope));
+ }
+
/**
* Gets all standalone tags from a given javadoc.
* @param aCmt teh Javadoc comment to process.
diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocVariableCheck.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocVariableCheck.java
index b30d7aaf4..6c918160f 100644
--- a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocVariableCheck.java
+++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocVariableCheck.java
@@ -55,6 +55,9 @@ public class JavadocVariableCheck
/** the scope to check */
private Scope mScope = Scope.PRIVATE;
+ /** the visibility scope where Javadoc comments shouldn't be checked **/
+ private Scope mExcludeScope;
+
/**
* Sets the scope to check.
* @param aFrom string to get the scope from
@@ -64,6 +67,15 @@ public class JavadocVariableCheck
mScope = Scope.getInstance(aFrom);
}
+ /**
+ * Set the excludeScope.
+ * @param aScope a String value
+ */
+ public void setExcludeScope(String aScope)
+ {
+ mExcludeScope = Scope.getInstance(aScope);
+ }
+
/** @see com.puppycrawl.tools.checkstyle.api.Check */
public int[] getDefaultTokens()
{
@@ -73,28 +85,38 @@ public class JavadocVariableCheck
/** @see com.puppycrawl.tools.checkstyle.api.Check */
public void visitToken(DetailAST aAST)
{
- if (!ScopeUtils.inCodeBlock(aAST)) {
- final DetailAST mods = aAST.findFirstToken(TokenTypes.MODIFIERS);
- final Scope declaredScope = ScopeUtils.getScopeFromMods(mods);
- final Scope variableScope =
- ScopeUtils.inInterfaceBlock(aAST)
- ? Scope.PUBLIC
- : declaredScope;
+ if (shouldCheck(aAST)) {
+ final FileContents contents = getFileContents();
+ final TextBlock cmt =
+ contents.getJavadocBefore(aAST.getLineNo());
- if (variableScope.isIn(mScope)) {
- final Scope surroundingScope =
- ScopeUtils.getSurroundingScope(aAST);
-
- if (surroundingScope.isIn(mScope)) {
- final FileContents contents = getFileContents();
- final TextBlock cmt =
- contents.getJavadocBefore(aAST.getLineNo());
-
- if (cmt == null) {
- log(aAST, "javadoc.missing");
- }
- }
+ if (cmt == null) {
+ log(aAST, "javadoc.missing");
}
}
}
+
+ /**
+ * Whether we should check this node.
+ * @param aAST a given node.
+ * @return whether we should check a given node.
+ */
+ private boolean shouldCheck(final DetailAST aAST)
+ {
+ if (ScopeUtils.inCodeBlock(aAST)) {
+ return false;
+ }
+
+ final DetailAST mods = aAST.findFirstToken(TokenTypes.MODIFIERS);
+ final Scope declaredScope = ScopeUtils.getScopeFromMods(mods);
+ final Scope scope =
+ ScopeUtils.inInterfaceBlock(aAST) ? Scope.PUBLIC : declaredScope;
+ final Scope surroundingScope = ScopeUtils.getSurroundingScope(aAST);
+
+ return scope.isIn(mScope) && surroundingScope.isIn(mScope)
+ && ((mExcludeScope == null)
+ || !scope.isIn(mExcludeScope)
+ || !surroundingScope.isIn(mExcludeScope));
+ }
+
}
diff --git a/src/testinputs/com/puppycrawl/tools/checkstyle/javadoc/InputNoJavadoc.java b/src/testinputs/com/puppycrawl/tools/checkstyle/javadoc/InputNoJavadoc.java
new file mode 100644
index 000000000..d2738d916
--- /dev/null
+++ b/src/testinputs/com/puppycrawl/tools/checkstyle/javadoc/InputNoJavadoc.java
@@ -0,0 +1,108 @@
+public class InputNoJavadic
+{
+ public int i1;
+ protected int i2;
+ int i3;
+ private int i4;
+
+ public foo1() {}
+ protected foo2() {}
+ foo3() {}
+ private foo4() {}
+
+ protected class ProtectedInner {
+ public int i1;
+ protected int i2;
+ int i3;
+ private int i4;
+
+ public foo1() {}
+ protected foo2() {}
+ foo3() {}
+ private foo4() {}
+ }
+
+ class PackageInner {
+ public int i1;
+ protected int i2;
+ int i3;
+ private int i4;
+
+ public foo1() {}
+ protected foo2() {}
+ foo3() {}
+ private foo4() {}
+ }
+
+ private class PrivateInner {
+ public int i1;
+ protected int i2;
+ int i3;
+ private int i4;
+
+ public foo1() {}
+ protected foo2() {}
+ foo3() {}
+ private foo4() {}
+ }
+}
+
+class PackageClass {
+ public int i1;
+ protected int i2;
+ int i3;
+ private int i4;
+
+ public foo1() {}
+ protected foo2() {}
+ foo3() {}
+ private foo4() {}
+
+ public class PublicInner {
+ public int i1;
+ protected int i2;
+ int i3;
+ private int i4;
+
+ public foo1() {}
+ protected foo2() {}
+ foo3() {}
+ private foo4() {}
+ }
+
+ protected class ProtectedInner {
+ public int i1;
+ protected int i2;
+ int i3;
+ private int i4;
+
+ public foo1() {}
+ protected foo2() {}
+ foo3() {}
+ private foo4() {}
+ }
+
+ class PackageInner {
+ public int i1;
+ protected int i2;
+ int i3;
+ private int i4;
+
+ public foo1() {}
+ protected foo2() {}
+ foo3() {}
+ private foo4() {}
+ }
+
+ private class PrivateInner {
+ public int i1;
+ protected int i2;
+ int i3;
+ private int i4;
+
+ public foo1() {}
+ protected foo2() {}
+ foo3() {}
+ private foo4() {}
+ }
+}
diff --git a/src/tests/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocMethodCheckTest.java b/src/tests/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocMethodCheckTest.java
index c8ed8ffe3..68f674dc8 100644
--- a/src/tests/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocMethodCheckTest.java
+++ b/src/tests/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocMethodCheckTest.java
@@ -4,6 +4,7 @@ import com.puppycrawl.tools.checkstyle.BaseCheckTestCase;
import com.puppycrawl.tools.checkstyle.DefaultConfiguration;
import com.puppycrawl.tools.checkstyle.api.Scope;
+import java.io.File;
public class JavadocMethodCheckTest
extends BaseCheckTestCase
@@ -217,4 +218,112 @@ public class JavadocMethodCheckTest
};
verify(checkConfig, getPath("InputTags.java"), expected);
}
+
+ public void testScopes() throws Exception
+ {
+ final DefaultConfiguration checkConfig =
+ createCheckConfig(JavadocMethodCheck.class);
+ final String[] expected = {
+ "8:5: Missing a Javadoc comment.",
+ "9:5: Missing a Javadoc comment.",
+ "10:5: Missing a Javadoc comment.",
+ "11:5: Missing a Javadoc comment.",
+ "19:9: Missing a Javadoc comment.",
+ "20:9: Missing a Javadoc comment.",
+ "21:9: Missing a Javadoc comment.",
+ "22:9: Missing a Javadoc comment.",
+ "31:9: Missing a Javadoc comment.",
+ "32:9: Missing a Javadoc comment.",
+ "33:9: Missing a Javadoc comment.",
+ "34:9: Missing a Javadoc comment.",
+ "43:9: Missing a Javadoc comment.",
+ "44:9: Missing a Javadoc comment.",
+ "45:9: Missing a Javadoc comment.",
+ "46:9: Missing a Javadoc comment.",
+ "56:5: Missing a Javadoc comment.",
+ "57:5: Missing a Javadoc comment.",
+ "58:5: Missing a Javadoc comment.",
+ "59:5: Missing a Javadoc comment.",
+ "67:9: Missing a Javadoc comment.",
+ "68:9: Missing a Javadoc comment.",
+ "69:9: Missing a Javadoc comment.",
+ "70:9: Missing a Javadoc comment.",
+ "79:9: Missing a Javadoc comment.",
+ "80:9: Missing a Javadoc comment.",
+ "81:9: Missing a Javadoc comment.",
+ "82:9: Missing a Javadoc comment.",
+ "91:9: Missing a Javadoc comment.",
+ "92:9: Missing a Javadoc comment.",
+ "93:9: Missing a Javadoc comment.",
+ "94:9: Missing a Javadoc comment.",
+ "103:9: Missing a Javadoc comment.",
+ "104:9: Missing a Javadoc comment.",
+ "105:9: Missing a Javadoc comment.",
+ "106:9: Missing a Javadoc comment.",
+ };
+ verify(checkConfig,
+ getPath("javadoc" + File.separator +"InputNoJavadoc.java"),
+ expected);
+ }
+
+ public void testScopes2() throws Exception
+ {
+ final DefaultConfiguration checkConfig =
+ createCheckConfig(JavadocMethodCheck.class);
+ checkConfig.addAttribute("scope", Scope.PROTECTED.getName());
+ final String[] expected = {
+ "8:5: Missing a Javadoc comment.",
+ "9:5: Missing a Javadoc comment.",
+ "19:9: Missing a Javadoc comment.",
+ "20:9: Missing a Javadoc comment.",
+ };
+ verify(checkConfig,
+ getPath("javadoc" + File.separator +"InputNoJavadoc.java"),
+ expected);
+ }
+
+ public void testExcludeScope() throws Exception
+ {
+ final DefaultConfiguration checkConfig =
+ createCheckConfig(JavadocMethodCheck.class);
+ checkConfig.addAttribute("scope", Scope.PRIVATE.getName());
+ checkConfig.addAttribute("excludeScope", Scope.PROTECTED.getName());
+ final String[] expected = {
+ "10:5: Missing a Javadoc comment.",
+ "11:5: Missing a Javadoc comment.",
+ "21:9: Missing a Javadoc comment.",
+ "22:9: Missing a Javadoc comment.",
+ "31:9: Missing a Javadoc comment.",
+ "32:9: Missing a Javadoc comment.",
+ "33:9: Missing a Javadoc comment.",
+ "34:9: Missing a Javadoc comment.",
+ "43:9: Missing a Javadoc comment.",
+ "44:9: Missing a Javadoc comment.",
+ "45:9: Missing a Javadoc comment.",
+ "46:9: Missing a Javadoc comment.",
+ "56:5: Missing a Javadoc comment.",
+ "57:5: Missing a Javadoc comment.",
+ "58:5: Missing a Javadoc comment.",
+ "59:5: Missing a Javadoc comment.",
+ "67:9: Missing a Javadoc comment.",
+ "68:9: Missing a Javadoc comment.",
+ "69:9: Missing a Javadoc comment.",
+ "70:9: Missing a Javadoc comment.",
+ "79:9: Missing a Javadoc comment.",
+ "80:9: Missing a Javadoc comment.",
+ "81:9: Missing a Javadoc comment.",
+ "82:9: Missing a Javadoc comment.",
+ "91:9: Missing a Javadoc comment.",
+ "92:9: Missing a Javadoc comment.",
+ "93:9: Missing a Javadoc comment.",
+ "94:9: Missing a Javadoc comment.",
+ "103:9: Missing a Javadoc comment.",
+ "104:9: Missing a Javadoc comment.",
+ "105:9: Missing a Javadoc comment.",
+ "106:9: Missing a Javadoc comment.",
+ };
+ verify(checkConfig,
+ getPath("javadoc" + File.separator +"InputNoJavadoc.java"),
+ expected);
+ }
}
diff --git a/src/tests/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocStyleCheckTest.java b/src/tests/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocStyleCheckTest.java
index 2074e1fd4..1e3ee546c 100755
--- a/src/tests/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocStyleCheckTest.java
+++ b/src/tests/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocStyleCheckTest.java
@@ -160,4 +160,27 @@ public class JavadocStyleCheckTest
verify(checkConfig, getPath("InputJavadocStyleCheck.java"), expected);
}
+ public void testExcludeScope()
+ throws Exception
+ {
+ final DefaultConfiguration checkConfig =
+ createCheckConfig(JavadocStyleCheck.class);
+ checkConfig.addAttribute("scope", "private");
+ checkConfig.addAttribute("excludeScope", "protected");
+ final String[] expected =
+ {
+ "20: First sentence should end with a period.",
+ "53: First sentence should end with a period.",
+ "63:11: Unclosed HTML tag found: This guy is missing end of bold tag",
+ "66:7: Extra HTML tag found: Extra tag shouldn't be here",
+ "68:19: Unclosed HTML tag found: dummy.",
+ "81: First sentence should end with a period.",
+ "82:31: Unclosed HTML tag found: should fail",
+ "109:39: Extra HTML tag found: ",
+ "186:8: Unclosed HTML tag found: ",
+ "193: First sentence should end with a period.",
+ };
+
+ verify(checkConfig, getPath("InputJavadocStyleCheck.java"), expected);
+ }
}
diff --git a/src/tests/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocTypeCheckTest.java b/src/tests/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocTypeCheckTest.java
index d0cc5a08c..7b7631146 100644
--- a/src/tests/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocTypeCheckTest.java
+++ b/src/tests/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocTypeCheckTest.java
@@ -4,6 +4,8 @@ import com.puppycrawl.tools.checkstyle.BaseCheckTestCase;
import com.puppycrawl.tools.checkstyle.DefaultConfiguration;
import com.puppycrawl.tools.checkstyle.api.Scope;
+import java.io.File;
+
/**
* @author Oliver.Burn
*
@@ -196,4 +198,58 @@ public class JavadocTypeCheckTest extends BaseCheckTestCase
};
verify(checkConfig, getPath("InputJavadoc.java"), expected);
}
+
+ public void testScopes() throws Exception
+ {
+ final DefaultConfiguration checkConfig =
+ createCheckConfig(JavadocTypeCheck.class);
+ final String[] expected = {
+ "1: Missing a Javadoc comment.",
+ "13: Missing a Javadoc comment.",
+ "25: Missing a Javadoc comment.",
+ "37: Missing a Javadoc comment.",
+ "50: Missing a Javadoc comment.",
+ "61: Missing a Javadoc comment.",
+ "73: Missing a Javadoc comment.",
+ "85: Missing a Javadoc comment.",
+ "97: Missing a Javadoc comment.",
+ };
+ verify(checkConfig,
+ getPath("javadoc" + File.separator +"InputNoJavadoc.java"),
+ expected);
+ }
+
+ public void testScopes2() throws Exception
+ {
+ final DefaultConfiguration checkConfig =
+ createCheckConfig(JavadocTypeCheck.class);
+ checkConfig.addAttribute("scope", Scope.PROTECTED.getName());
+ final String[] expected = {
+ "1: Missing a Javadoc comment.",
+ "13: Missing a Javadoc comment.",
+ };
+ verify(checkConfig,
+ getPath("javadoc" + File.separator +"InputNoJavadoc.java"),
+ expected);
+ }
+
+ public void testExcludeScope() throws Exception
+ {
+ final DefaultConfiguration checkConfig =
+ createCheckConfig(JavadocTypeCheck.class);
+ checkConfig.addAttribute("scope", Scope.PRIVATE.getName());
+ checkConfig.addAttribute("excludeScope", Scope.PROTECTED.getName());
+ final String[] expected = {
+ "25: Missing a Javadoc comment.",
+ "37: Missing a Javadoc comment.",
+ "50: Missing a Javadoc comment.",
+ "61: Missing a Javadoc comment.",
+ "73: Missing a Javadoc comment.",
+ "85: Missing a Javadoc comment.",
+ "97: Missing a Javadoc comment.",
+ };
+ verify(checkConfig,
+ getPath("javadoc" + File.separator +"InputNoJavadoc.java"),
+ expected);
+ }
}
diff --git a/src/tests/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocVariableCheckTest.java b/src/tests/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocVariableCheckTest.java
index 61a2e5a68..104aa551c 100644
--- a/src/tests/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocVariableCheckTest.java
+++ b/src/tests/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocVariableCheckTest.java
@@ -4,6 +4,7 @@ import com.puppycrawl.tools.checkstyle.BaseCheckTestCase;
import com.puppycrawl.tools.checkstyle.DefaultConfiguration;
import com.puppycrawl.tools.checkstyle.api.Scope;
+import java.io.File;
public class JavadocVariableCheckTest
extends BaseCheckTestCase
@@ -70,4 +71,112 @@ public class JavadocVariableCheckTest
};
verify(checkConfig, getPath("InputPublicOnly.java"), expected);
}
+
+ public void testScopes() throws Exception
+ {
+ final DefaultConfiguration checkConfig =
+ createCheckConfig(JavadocVariableCheck.class);
+ final String[] expected = {
+ "3:5: Missing a Javadoc comment.",
+ "4:5: Missing a Javadoc comment.",
+ "5:5: Missing a Javadoc comment.",
+ "6:5: Missing a Javadoc comment.",
+ "14:9: Missing a Javadoc comment.",
+ "15:9: Missing a Javadoc comment.",
+ "16:9: Missing a Javadoc comment.",
+ "17:9: Missing a Javadoc comment.",
+ "26:9: Missing a Javadoc comment.",
+ "27:9: Missing a Javadoc comment.",
+ "28:9: Missing a Javadoc comment.",
+ "29:9: Missing a Javadoc comment.",
+ "38:9: Missing a Javadoc comment.",
+ "39:9: Missing a Javadoc comment.",
+ "40:9: Missing a Javadoc comment.",
+ "41:9: Missing a Javadoc comment.",
+ "51:5: Missing a Javadoc comment.",
+ "52:5: Missing a Javadoc comment.",
+ "53:5: Missing a Javadoc comment.",
+ "54:5: Missing a Javadoc comment.",
+ "62:9: Missing a Javadoc comment.",
+ "63:9: Missing a Javadoc comment.",
+ "64:9: Missing a Javadoc comment.",
+ "65:9: Missing a Javadoc comment.",
+ "74:9: Missing a Javadoc comment.",
+ "75:9: Missing a Javadoc comment.",
+ "76:9: Missing a Javadoc comment.",
+ "77:9: Missing a Javadoc comment.",
+ "86:9: Missing a Javadoc comment.",
+ "87:9: Missing a Javadoc comment.",
+ "88:9: Missing a Javadoc comment.",
+ "89:9: Missing a Javadoc comment.",
+ "98:9: Missing a Javadoc comment.",
+ "99:9: Missing a Javadoc comment.",
+ "100:9: Missing a Javadoc comment.",
+ "101:9: Missing a Javadoc comment.",
+ };
+ verify(checkConfig,
+ getPath("javadoc" + File.separator +"InputNoJavadoc.java"),
+ expected);
+ }
+
+ public void testScopes2() throws Exception
+ {
+ final DefaultConfiguration checkConfig =
+ createCheckConfig(JavadocVariableCheck.class);
+ checkConfig.addAttribute("scope", Scope.PROTECTED.getName());
+ final String[] expected = {
+ "3:5: Missing a Javadoc comment.",
+ "4:5: Missing a Javadoc comment.",
+ "14:9: Missing a Javadoc comment.",
+ "15:9: Missing a Javadoc comment.",
+ };
+ verify(checkConfig,
+ getPath("javadoc" + File.separator +"InputNoJavadoc.java"),
+ expected);
+ }
+
+ public void testExcludeScope() throws Exception
+ {
+ final DefaultConfiguration checkConfig =
+ createCheckConfig(JavadocVariableCheck.class);
+ checkConfig.addAttribute("scope", Scope.PRIVATE.getName());
+ checkConfig.addAttribute("excludeScope", Scope.PROTECTED.getName());
+ final String[] expected = {
+ "5:5: Missing a Javadoc comment.",
+ "6:5: Missing a Javadoc comment.",
+ "16:9: Missing a Javadoc comment.",
+ "17:9: Missing a Javadoc comment.",
+ "26:9: Missing a Javadoc comment.",
+ "27:9: Missing a Javadoc comment.",
+ "28:9: Missing a Javadoc comment.",
+ "29:9: Missing a Javadoc comment.",
+ "38:9: Missing a Javadoc comment.",
+ "39:9: Missing a Javadoc comment.",
+ "40:9: Missing a Javadoc comment.",
+ "41:9: Missing a Javadoc comment.",
+ "51:5: Missing a Javadoc comment.",
+ "52:5: Missing a Javadoc comment.",
+ "53:5: Missing a Javadoc comment.",
+ "54:5: Missing a Javadoc comment.",
+ "62:9: Missing a Javadoc comment.",
+ "63:9: Missing a Javadoc comment.",
+ "64:9: Missing a Javadoc comment.",
+ "65:9: Missing a Javadoc comment.",
+ "74:9: Missing a Javadoc comment.",
+ "75:9: Missing a Javadoc comment.",
+ "76:9: Missing a Javadoc comment.",
+ "77:9: Missing a Javadoc comment.",
+ "86:9: Missing a Javadoc comment.",
+ "87:9: Missing a Javadoc comment.",
+ "88:9: Missing a Javadoc comment.",
+ "89:9: Missing a Javadoc comment.",
+ "98:9: Missing a Javadoc comment.",
+ "99:9: Missing a Javadoc comment.",
+ "100:9: Missing a Javadoc comment.",
+ "101:9: Missing a Javadoc comment.",
+ };
+ verify(checkConfig,
+ getPath("javadoc" + File.separator +"InputNoJavadoc.java"),
+ expected);
+ }
}