From 135b7a010b6671f2457b1be90b8a06daae116efe Mon Sep 17 00:00:00 2001 From: Rick Giles Date: Tue, 1 Jul 2003 11:58:27 +0000 Subject: [PATCH] implement requirement that a bean class cannot be abstract --- .../tools/checkstyle/checks/j2ee/AbstractBeanCheck.java | 5 +++++ .../tools/checkstyle/checks/j2ee/EntityBeanCheck.java | 3 +-- .../tools/checkstyle/checks/j2ee/MessageBeanCheck.java | 3 +-- .../tools/checkstyle/checks/j2ee/SessionBeanCheck.java | 3 +-- contrib/j2ee/src/tests/EntityBeanCheckTest.java | 2 ++ contrib/j2ee/src/tests/MessageBeanCheckTest.java | 4 ++++ contrib/j2ee/src/tests/SessionBeanCheckTest.java | 4 ++++ 7 files changed, 18 insertions(+), 6 deletions(-) diff --git a/contrib/j2ee/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/j2ee/AbstractBeanCheck.java b/contrib/j2ee/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/j2ee/AbstractBeanCheck.java index 81c3c7b96..24fab8819 100644 --- a/contrib/j2ee/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/j2ee/AbstractBeanCheck.java +++ b/contrib/j2ee/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/j2ee/AbstractBeanCheck.java @@ -77,6 +77,11 @@ public class AbstractBeanCheck "illegalmodifier.bean", new Object[] {aBeanType, "final"}); } + if (Utils.isAbstract(aAST)) { + log(nameAST.getLineNo(), nameAST.getColumnNo(), + "illegalmodifier.bean", + new Object[] {aBeanType, "abstract"}); + } if (!Utils.hasPublicConstructor(aAST, 0)) { log(nameAST.getLineNo(), nameAST.getColumnNo(), "nonpublicconstructor.bean", aBeanType); diff --git a/contrib/j2ee/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/j2ee/EntityBeanCheck.java b/contrib/j2ee/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/j2ee/EntityBeanCheck.java index 4127082cf..eb4c1153d 100644 --- a/contrib/j2ee/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/j2ee/EntityBeanCheck.java +++ b/contrib/j2ee/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/j2ee/EntityBeanCheck.java @@ -40,8 +40,7 @@ public class EntityBeanCheck */ public void visitToken(DetailAST aAST) { - if (Utils.hasImplements(aAST, "javax.ejb.EntityBean") - && !Utils.isAbstract(aAST)) + if (Utils.hasImplements(aAST, "javax.ejb.EntityBean")) { checkBean(aAST, "Entity bean"); } diff --git a/contrib/j2ee/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/j2ee/MessageBeanCheck.java b/contrib/j2ee/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/j2ee/MessageBeanCheck.java index d94b8d132..4d0a4ee96 100644 --- a/contrib/j2ee/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/j2ee/MessageBeanCheck.java +++ b/contrib/j2ee/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/j2ee/MessageBeanCheck.java @@ -43,8 +43,7 @@ public class MessageBeanCheck public void visitToken(DetailAST aAST) { if (Utils.hasImplements(aAST, "javax.ejb.MessageDrivenBean") - && Utils.hasImplements(aAST, "javax.jms.MessageListener") - && !Utils.isAbstract(aAST)) + && Utils.hasImplements(aAST, "javax.jms.MessageListener")) { checkBean(aAST, "Message bean"); if (!hasRequiredEjbCreate(aAST)) { diff --git a/contrib/j2ee/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/j2ee/SessionBeanCheck.java b/contrib/j2ee/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/j2ee/SessionBeanCheck.java index 0a3c3d303..edac23389 100644 --- a/contrib/j2ee/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/j2ee/SessionBeanCheck.java +++ b/contrib/j2ee/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/j2ee/SessionBeanCheck.java @@ -42,8 +42,7 @@ public class SessionBeanCheck */ public void visitToken(DetailAST aAST) { - if (Utils.hasImplements(aAST, "javax.ejb.SessionBean") - && !Utils.isAbstract(aAST)) + if (Utils.hasImplements(aAST, "javax.ejb.SessionBean")) { checkBean(aAST, "Session bean"); if (!Utils.hasPublicMethod(aAST, "ejbCreate", true)) { diff --git a/contrib/j2ee/src/tests/EntityBeanCheckTest.java b/contrib/j2ee/src/tests/EntityBeanCheckTest.java index 17a267e43..0965a6bc1 100644 --- a/contrib/j2ee/src/tests/EntityBeanCheckTest.java +++ b/contrib/j2ee/src/tests/EntityBeanCheckTest.java @@ -11,6 +11,8 @@ public class EntityBeanCheckTest extends BaseCheckTestCase createCheckConfig(EntityBeanCheck.class); final String[] expected = { "13:14: Entity bean must have a public constructor with no parameters.", + "75:16: Entity bean must be public.", + "75:16: Entity bean must not have modifier abstract.", "83:13: Entity bean must be public.", "83:13: Entity bean must not have modifier final.", }; diff --git a/contrib/j2ee/src/tests/MessageBeanCheckTest.java b/contrib/j2ee/src/tests/MessageBeanCheckTest.java index 37a885341..c57398378 100644 --- a/contrib/j2ee/src/tests/MessageBeanCheckTest.java +++ b/contrib/j2ee/src/tests/MessageBeanCheckTest.java @@ -12,6 +12,10 @@ public class MessageBeanCheckTest extends BaseCheckTestCase final String[] expected = { "12:14: Message bean must have a public constructor with no parameters.", "12:14: Message bean must have method ejbCreate.", + "41:16: Message bean must be public.", + "41:16: Message bean must have a public constructor with no parameters.", + "41:16: Message bean must have method ejbCreate.", + "41:16: Message bean must not have modifier abstract.", "46:13: Message bean must be public.", "46:13: Message bean must not have modifier final.", }; diff --git a/contrib/j2ee/src/tests/SessionBeanCheckTest.java b/contrib/j2ee/src/tests/SessionBeanCheckTest.java index 3b645c5c9..53dd50360 100644 --- a/contrib/j2ee/src/tests/SessionBeanCheckTest.java +++ b/contrib/j2ee/src/tests/SessionBeanCheckTest.java @@ -12,6 +12,10 @@ public class SessionBeanCheckTest extends BaseCheckTestCase final String[] expected = { "12:14: Session bean must have a public constructor with no parameters.", "12:14: Session bean must have method ejbCreate.", + "53:16: Session bean must be public.", + "53:16: Session bean must have a public constructor with no parameters.", + "53:16: Session bean must have method ejbCreate.", + "53:16: Session bean must not have modifier abstract.", "58:13: Session bean must be public.", "58:13: Session bean must not have modifier final.", };