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();
+
}