Author: hlship
Date: Fri Feb 26 23:08:37 2010
New Revision: 916851

URL: http://svn.apache.org/viewvc?rev=916851&view=rev
Log:
Make it easier to subclass PageCallback and still implement a toString()

Modified:
    
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/PageCallback.java

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/PageCallback.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/PageCallback.java?rev=916851&r1=916850&r2=916851&view=diff
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/PageCallback.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/PageCallback.java
 Fri Feb 26 23:08:37 2010
@@ -64,11 +64,27 @@
     @Override
     public String toString()
     {
-        StringBuilder builder = new StringBuilder("PageCallback[");
+        if (hasActivationContext())
+            return String.format("PageCallback[%s %s]", pageName, 
activationContextDescription());
 
-        builder.append(pageName);
+        return String.format("PageCallback[%s]");
+    }
 
-        String sep = " ";
+    /** Does the activation context have any values? Used, typically, inside 
an override of {...@link #toString()}. */
+    protected final boolean hasActivationContext()
+    {
+        return activationContext.length > 0;
+    }
+
+    /**
+     * Returns the activation context as a string of value separated by 
slashes. Typically used inside
+     * an override of {...@link #toString()}.
+     */
+    protected final String activationContextDescription()
+    {
+        StringBuilder builder = new StringBuilder();
+
+        String sep = "";
 
         for (String c : activationContext)
         {
@@ -78,8 +94,6 @@
             sep = "/";
         }
 
-        builder.append("]");
-
         return builder.toString();
     }
 


Reply via email to