Scope instance.
- *
- * @param aCode one of the SCOPECODE_XYZ values.
- * @param aName one of the SCOPENAME_XYZ values.
- */
- private Scope(int aCode, String aName)
- {
- mCode = aCode;
- mName = aName;
- }
-
/**
* Scope factory method.
*
@@ -167,26 +73,6 @@ public final class Scope implements Comparable* Severity level for a check violation. + *
** Each violation of an audit check is assigned one of the severity levels * defined here. + *
* * @author David Schneider + * @author Travis Schneeberger */ -public final class SeverityLevel implements ComparableSeverityLevel instance.
- *
- * @param aCode one of the SEVERITYCODE_XYZ values.
- * @param aName one of the SEVERITYNAME_XYZ values.
- */
- private SeverityLevel(int aCode, String aName)
- {
- mCode = aCode;
- mName = aName;
+ return name().toLowerCase();
}
/**
* SeverityLevel factory method.
*
- * @param aSeverityName severity name, such as "ignore", "info", etc.
- * @return the SeverityLevel associated with
- * aSeverityName
+ * @param aSecurityLevelName level name, such as "ignore", "info", etc.
+ * @return the SeverityLevel
+ * associated with aSecurityLevelName
*/
- public static SeverityLevel getInstance(String aSeverityName)
+ public static SeverityLevel getInstance(String aSecurityLevelName)
{
- // canonicalize argument
- final String severityName = aSeverityName.trim().toLowerCase();
-
- final SeverityLevel retVal =
- NAME_TO_LEVEL.get(severityName);
- if (retVal == null) {
- throw new IllegalArgumentException(severityName);
- }
- return retVal;
- }
-
- /**
- * Ensures that we don't get multiple instances of one SeverityLevel
- * during deserialization. See Section 3.6 of the Java Object
- * Serialization Specification for details.
- *
- * @return the serialization replacement object
- */
- private Object readResolve()
- {
- return getInstance(mName);
+ return valueOf(SeverityLevel.class, aSecurityLevelName.trim()
+ .toUpperCase());
}
}
diff --git a/src/tests/com/puppycrawl/tools/checkstyle/api/AllApiTests.java b/src/tests/com/puppycrawl/tools/checkstyle/api/AllApiTests.java
index 90b1d5f72..cbfa44912 100644
--- a/src/tests/com/puppycrawl/tools/checkstyle/api/AllApiTests.java
+++ b/src/tests/com/puppycrawl/tools/checkstyle/api/AllApiTests.java
@@ -6,7 +6,7 @@ import org.junit.runners.Suite;
@RunWith(Suite.class)
@Suite.SuiteClasses( {AbstractViolationReporterTest.class,
AutomaticBeanTest.class, DetailASTTest.class, ScopeTest.class,
- TokenTypesTest.class, FastStackTest.class})
+ SeverityLevelTest.class, TokenTypesTest.class, FastStackTest.class})
public class AllApiTests
{
}
diff --git a/src/tests/com/puppycrawl/tools/checkstyle/api/ScopeTest.java b/src/tests/com/puppycrawl/tools/checkstyle/api/ScopeTest.java
index 970dbef04..682b27ca3 100644
--- a/src/tests/com/puppycrawl/tools/checkstyle/api/ScopeTest.java
+++ b/src/tests/com/puppycrawl/tools/checkstyle/api/ScopeTest.java
@@ -1,7 +1,6 @@
package com.puppycrawl.tools.checkstyle.api;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.*;
import org.junit.Test;
@@ -12,9 +11,86 @@ public class ScopeTest
{
final Scope o = Scope.getInstance("public");
assertNotNull(o);
- assertEquals("Scope[1 (public)]", o.toString());
+ assertEquals("public", o.toString());
assertEquals("public", o.getName());
Scope.getInstance("unknown"); // will fail
}
+
+ @Test
+ public void testMixedCaseSpaces()
+ {
+ Scope.getInstance("NothinG ");
+ Scope.getInstance(" PuBlic");
+ Scope.getInstance(" ProteCted");
+ Scope.getInstance(" PackAge ");
+ Scope.getInstance("privaTe ");
+ Scope.getInstance("AnonInner");
+ }
+
+ @Test
+ public void testIsInAnonInner()
+ {
+ assertTrue(Scope.NOTHING.isIn(Scope.ANONINNER));
+ assertTrue(Scope.PUBLIC.isIn(Scope.ANONINNER));
+ assertTrue(Scope.PROTECTED.isIn(Scope.ANONINNER));
+ assertTrue(Scope.PACKAGE.isIn(Scope.ANONINNER));
+ assertTrue(Scope.PRIVATE.isIn(Scope.ANONINNER));
+ assertTrue(Scope.ANONINNER.isIn(Scope.ANONINNER));
+ }
+
+ @Test
+ public void testIsInPrivate()
+ {
+ assertTrue(Scope.NOTHING.isIn(Scope.PRIVATE));
+ assertTrue(Scope.PUBLIC.isIn(Scope.PRIVATE));
+ assertTrue(Scope.PROTECTED.isIn(Scope.PRIVATE));
+ assertTrue(Scope.PACKAGE.isIn(Scope.PRIVATE));
+ assertTrue(Scope.PRIVATE.isIn(Scope.PRIVATE));
+ assertTrue(!Scope.ANONINNER.isIn(Scope.PRIVATE));
+ }
+
+ @Test
+ public void testIsInPackage()
+ {
+ assertTrue(Scope.NOTHING.isIn(Scope.PACKAGE));
+ assertTrue(Scope.PUBLIC.isIn(Scope.PACKAGE));
+ assertTrue(Scope.PROTECTED.isIn(Scope.PACKAGE));
+ assertTrue(Scope.PACKAGE.isIn(Scope.PACKAGE));
+ assertTrue(!Scope.PRIVATE.isIn(Scope.PACKAGE));
+ assertTrue(!Scope.ANONINNER.isIn(Scope.PACKAGE));
+ }
+
+ @Test
+ public void testIsInProtected()
+ {
+ assertTrue(Scope.NOTHING.isIn(Scope.PROTECTED));
+ assertTrue(Scope.PUBLIC.isIn(Scope.PROTECTED));
+ assertTrue(Scope.PROTECTED.isIn(Scope.PROTECTED));
+ assertTrue(!Scope.PACKAGE.isIn(Scope.PROTECTED));
+ assertTrue(!Scope.PRIVATE.isIn(Scope.PROTECTED));
+ assertTrue(!Scope.ANONINNER.isIn(Scope.PROTECTED));
+ }
+
+ @Test
+ public void testIsInPublic()
+ {
+ assertTrue(Scope.NOTHING.isIn(Scope.PUBLIC));
+ assertTrue(Scope.PUBLIC.isIn(Scope.PUBLIC));
+ assertTrue(!Scope.PROTECTED.isIn(Scope.PUBLIC));
+ assertTrue(!Scope.PACKAGE.isIn(Scope.PUBLIC));
+ assertTrue(!Scope.PRIVATE.isIn(Scope.PUBLIC));
+ assertTrue(!Scope.ANONINNER.isIn(Scope.PUBLIC));
+ }
+
+ @Test
+ public void testIsInNothing()
+ {
+ assertTrue(Scope.NOTHING.isIn(Scope.NOTHING));
+ assertTrue(!Scope.PUBLIC.isIn(Scope.NOTHING));
+ assertTrue(!Scope.PROTECTED.isIn(Scope.NOTHING));
+ assertTrue(!Scope.PACKAGE.isIn(Scope.NOTHING));
+ assertTrue(!Scope.PRIVATE.isIn(Scope.NOTHING));
+ assertTrue(!Scope.ANONINNER.isIn(Scope.NOTHING));
+ }
}
diff --git a/src/tests/com/puppycrawl/tools/checkstyle/api/SeverityLevelTest.java b/src/tests/com/puppycrawl/tools/checkstyle/api/SeverityLevelTest.java
new file mode 100644
index 000000000..aa7a2ba66
--- /dev/null
+++ b/src/tests/com/puppycrawl/tools/checkstyle/api/SeverityLevelTest.java
@@ -0,0 +1,28 @@
+package com.puppycrawl.tools.checkstyle.api;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+public class SeverityLevelTest
+{
+ @Test(expected = IllegalArgumentException.class)
+ public void testMisc()
+ {
+ final SeverityLevel o = SeverityLevel.getInstance("info");
+ assertNotNull(o);
+ assertEquals("info", o.toString());
+ assertEquals("info", o.getName());
+
+ SeverityLevel.getInstance("unknown"); // will fail
+ }
+
+ @Test
+ public void testMixedCaseSpaces()
+ {
+ SeverityLevel.getInstance("IgnoRe ");
+ SeverityLevel.getInstance(" iNfo");
+ SeverityLevel.getInstance(" WarniNg");
+ SeverityLevel.getInstance(" ERROR ");
+ }
+}
diff --git a/src/xdocs/releasenotes.xml b/src/xdocs/releasenotes.xml
index c43a794db..d9d71bcf4 100755
--- a/src/xdocs/releasenotes.xml
+++ b/src/xdocs/releasenotes.xml
@@ -121,6 +121,12 @@
Updated dependencies: Removed commons-collections; added google collections
(google-collect-snapshot-20080321.jar); upgraded commons-cli to version 1.1.
+