Author: jcompagner
Date: Tue Mar 24 19:10:00 2009
New Revision: 757961

URL: http://svn.apache.org/viewvc?rev=757961&view=rev
Log:
Refactored PageId to PageReference

PageId should be removed before the final of 1.4

Added:
    wicket/trunk/wicket/src/main/java/org/apache/wicket/PageReference.java
      - copied, changed from r755192, 
wicket/trunk/wicket/src/main/java/org/apache/wicket/PageId.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/PageReferenceRequestTarget.java
Modified:
    wicket/trunk/wicket/src/main/java/org/apache/wicket/Page.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/PageId.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/RequestCycle.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebRequestCodingStrategy.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/PageIdRequestTarget.java

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/Page.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/Page.java?rev=757961&r1=757960&r2=757961&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/Page.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/Page.java Tue Mar 24 
19:10:00 2009
@@ -688,7 +688,7 @@
                        try
                        {
 
-                               if (getClass().getConstructor(new Class[] {}) 
!= null)
+                               if (getClass().getConstructor(new Class[] { }) 
!= null)
                                {
                                        bookmarkable = Boolean.TRUE;
                                }
@@ -1666,14 +1666,28 @@
        }
 
        /**
-        * Gets page instance's unique identifier
+        * This method will be removed before the final of 1.4
         * 
         * @return instance unique identifier
+        * 
+        * @depricated This method will be removed before the final of 1.4
         */
+       @Deprecated
        public PageId getPageId()
        {
                setStatelessHint(false);
                return new PageId(pageMapName, numericId, 
getCurrentVersionNumber());
+       }
+
+       /**
+        * Gets page instance's unique identifier
+        * 
+        * @return instance unique identifier
+        */
+       public PageReference getPageReference()
+       {
+               setStatelessHint(false);
+               return new PageReference(pageMapName, numericId, 
getCurrentVersionNumber());
 
        }
 

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/PageId.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/PageId.java?rev=757961&r1=757960&r2=757961&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/PageId.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/PageId.java Tue Mar 24 
19:10:00 2009
@@ -21,15 +21,14 @@
  * Unique identifier of a page instance
  * 
  * @author igor.vaynberg
+ * 
+ * @depricated will be removed
  */
-public final class PageId implements IClusterable
+...@deprecated
+public final class PageId extends PageReference
 {
        private static final long serialVersionUID = 1L;
 
-       private final String pageMapName;
-       private final int number;
-       private final int version;
-
        /**
         * Constructor
         * 
@@ -37,86 +36,9 @@
         * @param number
         * @param version
         */
+       @Deprecated
        PageId(String pageMapName, int number, int version)
        {
-               this.pageMapName = pageMapName;
-               this.number = number;
-               this.version = version;
-       }
-
-       /**
-        * Gets pageMapName.
-        * 
-        * @return pageMapName
-        */
-       public String getPageMapName()
-       {
-               return pageMapName;
-       }
-
-
-       /**
-        * Gets pageId.
-        * 
-        * @return pageId
-        */
-       public int getPageNumber()
-       {
-               return number;
+               super(pageMapName, number, version);
        }
-
-
-       /**
-        * Gets pageVersion.
-        * 
-        * @return pageVersion
-        */
-       public int getPageVersion()
-       {
-               return version;
-       }
-
-
-       /**
-        * @see java.lang.Object#hashCode()
-        */
-       @Override
-       public int hashCode()
-       {
-               final int prime = 31;
-               int result = 1;
-               result = prime * result + number;
-               result = prime * result + ((pageMapName == null) ? 0 : 
pageMapName.hashCode());
-               result = prime * result + version;
-               return result;
-       }
-
-       /**
-        * @see java.lang.Object#equals(java.lang.Object)
-        */
-       @Override
-       public boolean equals(Object obj)
-       {
-               if (this == obj)
-                       return true;
-               if (obj == null)
-                       return false;
-               if (getClass() != obj.getClass())
-                       return false;
-               PageId other = (PageId)obj;
-               if (number != other.number)
-                       return false;
-               if (pageMapName == null)
-               {
-                       if (other.pageMapName != null)
-                               return false;
-               }
-               else if (!pageMapName.equals(other.pageMapName))
-                       return false;
-               if (version != other.version)
-                       return false;
-               return true;
-       }
-
-
 }

Copied: wicket/trunk/wicket/src/main/java/org/apache/wicket/PageReference.java 
(from r755192, wicket/trunk/wicket/src/main/java/org/apache/wicket/PageId.java)
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/PageReference.java?p2=wicket/trunk/wicket/src/main/java/org/apache/wicket/PageReference.java&p1=wicket/trunk/wicket/src/main/java/org/apache/wicket/PageId.java&r1=755192&r2=757961&rev=757961&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/PageId.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/PageReference.java Tue 
Mar 24 19:10:00 2009
@@ -22,7 +22,7 @@
  * 
  * @author igor.vaynberg
  */
-public final class PageId implements IClusterable
+public class PageReference implements IClusterable
 {
        private static final long serialVersionUID = 1L;
 
@@ -37,7 +37,7 @@
         * @param number
         * @param version
         */
-       PageId(String pageMapName, int number, int version)
+       PageReference(String pageMapName, int number, int version)
        {
                this.pageMapName = pageMapName;
                this.number = number;
@@ -45,6 +45,14 @@
        }
 
        /**
+        * @return The page that the this PageReference references
+        */
+       public Page getPage()
+       {
+               return Session.get().getPage(pageMapName, 
Integer.toString(number), version);
+       }
+
+       /**
         * Gets pageMapName.
         * 
         * @return pageMapName
@@ -103,7 +111,7 @@
                        return false;
                if (getClass() != obj.getClass())
                        return false;
-               PageId other = (PageId)obj;
+               PageReference other = (PageReference)obj;
                if (number != other.number)
                        return false;
                if (pageMapName == null)

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/RequestCycle.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/RequestCycle.java?rev=757961&r1=757960&r2=757961&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/RequestCycle.java 
(original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/RequestCycle.java Tue 
Mar 24 19:10:00 2009
@@ -1033,7 +1033,7 @@
         *            page id
         * @return url pointing to the page
         */
-       public final CharSequence urlFor(final PageId id)
+       public final CharSequence urlFor(final PageReference id)
        {
                return urlFor(new PageIdRequestTarget(id));
        }

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebRequestCodingStrategy.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebRequestCodingStrategy.java?rev=757961&r1=757960&r2=757961&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebRequestCodingStrategy.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebRequestCodingStrategy.java
 Tue Mar 24 19:10:00 2009
@@ -31,9 +31,9 @@
 import org.apache.wicket.IRequestTarget;
 import org.apache.wicket.IResourceListener;
 import org.apache.wicket.Page;
-import org.apache.wicket.PageId;
 import org.apache.wicket.PageMap;
 import org.apache.wicket.PageParameters;
+import org.apache.wicket.PageReference;
 import org.apache.wicket.Request;
 import org.apache.wicket.RequestContext;
 import org.apache.wicket.RequestCycle;
@@ -56,6 +56,7 @@
 import 
org.apache.wicket.request.target.component.IBookmarkablePageRequestTarget;
 import org.apache.wicket.request.target.component.IPageRequestTarget;
 import org.apache.wicket.request.target.component.PageIdRequestTarget;
+import org.apache.wicket.request.target.component.PageReferenceRequestTarget;
 import 
org.apache.wicket.request.target.component.listener.IListenerInterfaceRequestTarget;
 import org.apache.wicket.request.target.resource.ISharedResourceRequestTarget;
 import org.apache.wicket.util.lang.Objects;
@@ -272,7 +273,7 @@
                }
                else if (requestTarget instanceof PageIdRequestTarget)
                {
-                       url = encode(requestCycle, 
(PageIdRequestTarget)requestTarget);
+                       url = encode(requestCycle, requestTarget);
                }
                else if (requestTarget instanceof 
IListenerInterfaceRequestTarget)
                {
@@ -862,9 +863,10 @@
         *            the target to encode
         * @return the encoded url
         */
-       protected CharSequence encode(RequestCycle requestCycle, 
PageIdRequestTarget requestTarget)
+       protected CharSequence encode(RequestCycle requestCycle,
+               PageReferenceRequestTarget requestTarget)
        {
-               final PageId id = requestTarget.getPageId();
+               final PageReference id = requestTarget.getPageReference();
 
                // Start string buffer for url
                final AppendingStringBuffer url = new AppendingStringBuffer(64);

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/PageIdRequestTarget.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/PageIdRequestTarget.java?rev=757961&r1=757960&r2=757961&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/PageIdRequestTarget.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/PageIdRequestTarget.java
 Tue Mar 24 19:10:00 2009
@@ -16,86 +16,31 @@
  */
 package org.apache.wicket.request.target.component;
 
-import org.apache.wicket.IRequestTarget;
 import org.apache.wicket.Page;
-import org.apache.wicket.PageId;
-import org.apache.wicket.RequestCycle;
+import org.apache.wicket.PageReference;
 
 /**
  * Target that navigates to a page pointed to by its id. The great benefit of 
this target over the
  * PageRequestTarget is that no reference to the actual page is needed, which 
greatly facilitates
  * navigational usecases where a list or a stack of page references is needed 
(ie breadcrumbs).
  * 
- * @see PageId
+ * @see PageReference
  * 
  * @author igor.vaynberg
+ * @depricated will be removed before 1.5
  */
-public class PageIdRequestTarget implements IRequestTarget
+...@deprecated
+public class PageIdRequestTarget extends PageReferenceRequestTarget
 {
-       private final PageId id;
-
-       /**
-        * Constructor
-        * 
-        * Even though a page is passed in, only a reference to its {...@link 
PageId} is kept
-        * 
-        * @param page
-        */
+       @Deprecated
        public PageIdRequestTarget(Page page)
        {
-               if (page == null)
-               {
-                       throw new IllegalArgumentException("Argument `page` 
cannot be null");
-               }
-               id = page.getPageId();
-       }
-
-       /**
-        * Constructor
-        * 
-        * @param pageId
-        */
-       public PageIdRequestTarget(PageId pageId)
-       {
-               if (pageId == null)
-               {
-                       throw new IllegalArgumentException("Argument `pageId` 
cannot be null");
-               }
-
-               id = pageId;
-       }
-
-
-       /**
-        * @return id page id
-        */
-       public final PageId getPageId()
-       {
-               return id;
+               super(page);
        }
 
-       /** {...@inheritdoc} */
-       public void respond(RequestCycle requestCycle)
+       @Deprecated
+       public PageIdRequestTarget(PageReference reference)
        {
-               Page page = 
requestCycle.getSession().getPage(id.getPageMapName(), "" + id.getPageNumber(),
-                       id.getPageVersion());
-
-               // Should page be redirected to?
-               if (requestCycle.isRedirect())
-               {
-                       // Redirect to the page
-                       requestCycle.redirectTo(page);
-               }
-               else
-               {
-                       // Let page render itself
-                       page.renderPage();
-               }
+               super(reference);
        }
-
-       /** {...@inheritdoc} */
-       public void detach(RequestCycle requestCycle)
-       {
-       }
-
 }

Added: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/PageReferenceRequestTarget.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/PageReferenceRequestTarget.java?rev=757961&view=auto
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/PageReferenceRequestTarget.java
 (added)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/PageReferenceRequestTarget.java
 Tue Mar 24 19:10:00 2009
@@ -0,0 +1,101 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.request.target.component;
+
+import org.apache.wicket.IRequestTarget;
+import org.apache.wicket.Page;
+import org.apache.wicket.PageReference;
+import org.apache.wicket.RequestCycle;
+
+/**
+ * Target that navigates to a page pointed to by its id. The great benefit of 
this target over the
+ * PageRequestTarget is that no reference to the actual page is needed, which 
greatly facilitates
+ * navigational usecases where a list or a stack of page references is needed 
(ie breadcrumbs).
+ * 
+ * @see PageReference
+ * 
+ * @author igor.vaynberg
+ */
+public class PageReferenceRequestTarget implements IRequestTarget
+{
+       private final PageReference reference;
+
+       /**
+        * Constructor
+        * 
+        * Even though a page is passed in, only a reference to its {...@link 
PageReference} is kept
+        * 
+        * @param page
+        */
+       public PageReferenceRequestTarget(Page page)
+       {
+               if (page == null)
+               {
+                       throw new IllegalArgumentException("Argument `page` 
cannot be null");
+               }
+               reference = page.getPageReference();
+       }
+
+       /**
+        * Constructor
+        * 
+        * @param pageReference
+        */
+       public PageReferenceRequestTarget(PageReference pageReference)
+       {
+               if (pageReference == null)
+               {
+                       throw new IllegalArgumentException("Argument `pageId` 
cannot be null");
+               }
+
+               reference = pageReference;
+       }
+
+
+       /**
+        * @return id page id
+        */
+       public final PageReference getPageReference()
+       {
+               return reference;
+       }
+
+       /** {...@inheritdoc} */
+       public void respond(RequestCycle requestCycle)
+       {
+               Page page = reference.getPage();
+
+               // Should page be redirected to?
+               if (requestCycle.isRedirect())
+               {
+                       // Redirect to the page
+                       requestCycle.redirectTo(page);
+               }
+               else
+               {
+                       // Let page render itself
+                       page.renderPage();
+               }
+       }
+
+       /** {...@inheritdoc} */
+       public void detach(RequestCycle requestCycle)
+       {
+               reference.getPage().detach();
+       }
+
+}


Reply via email to