You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by hl...@apache.org on 2010/02/19 19:53:09 UTC

svn commit: r911908 - in /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5: internal/services/InternalClassTransformationImpl.java services/ClassTransformation.java services/TransformMethod.java

Author: hlship
Date: Fri Feb 19 18:53:09 2010
New Revision: 911908

URL: http://svn.apache.org/viewvc?rev=911908&view=rev
Log:
Add isOverride() method to TransformMethod, replacing ClassTransformation.isMethodOverride()

Modified:
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/InternalClassTransformationImpl.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/ClassTransformation.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TransformMethod.java

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/InternalClassTransformationImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/InternalClassTransformationImpl.java?rev=911908&r1=911907&r2=911908&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/InternalClassTransformationImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/InternalClassTransformationImpl.java Fri Feb 19 18:53:09 2010
@@ -88,6 +88,8 @@
 
         private String identifier;
 
+        private Boolean override;
+
         TransformMethodImpl(CtMethod method, boolean added)
         {
             this.method = method;
@@ -328,6 +330,31 @@
             return identifier;
         }
 
+        public boolean isOverride()
+        {
+            if (override == null)
+                override = searchForOverride();
+
+            return override;
+        }
+
+        private boolean searchForOverride()
+        {
+            InternalClassTransformation search = parentTransformation;
+
+            while (search != null)
+            {
+                if (search.isMethod(sig))
+                    return true;
+
+                search = search.getParentTransformation();
+            }
+
+            // Not found in any super-class.
+
+            return false;
+        }
+
         void doFinish()
         {
             if (builder != null)
@@ -1678,24 +1705,11 @@
 
     public boolean isMethodOverride(TransformMethodSignature methodSignature)
     {
-        Defense.notNull(methodSignature, "methodSignature");
-
         if (!isMethod(methodSignature))
             throw new IllegalArgumentException(String.format("Method %s is not implemented by transformed class %s.",
                     methodSignature, getClassName()));
 
-        InternalClassTransformation search = parentTransformation;
-        while (search != null)
-        {
-            if (search.isMethod(methodSignature))
-                return true;
-
-            search = search.getParentTransformation();
-        }
-
-        // Not found in any super-class.
-
-        return false;
+        return getMethod(methodSignature).isOverride();
     }
 
     public InternalClassTransformation getParentTransformation()

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/ClassTransformation.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/ClassTransformation.java?rev=911908&r1=911907&r2=911908&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/ClassTransformation.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/ClassTransformation.java Fri Feb 19 18:53:09 2010
@@ -540,6 +540,7 @@
      * @param methodSignature
      *            signature of method to check
      * @return true if the parent class contains a method with the name signature
+     * @deprecated Use {@link TransformMethod#isOverride()} instead
      */
     boolean isMethodOverride(TransformMethodSignature methodSignature);
 

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TransformMethod.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TransformMethod.java?rev=911908&r1=911907&r2=911908&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TransformMethod.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TransformMethod.java Fri Feb 19 18:53:09 2010
@@ -83,4 +83,11 @@
      */
     String getMethodIdentifier();
 
+    /**
+     * Returns true if the method is an override of a method from the parent class.
+     * 
+     * @return true if the parent class contains a method with the name signature
+     */
+    boolean isOverride();
+
 }