You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by eh...@apache.org on 2007/06/08 03:00:13 UTC
svn commit: r545357 -
/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Page.java
Author: ehillenius
Date: Thu Jun 7 18:00:12 2007
New Revision: 545357
URL: http://svn.apache.org/viewvc?view=rev&rev=545357
Log:
sorted members
Modified:
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Page.java
Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Page.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Page.java?view=diff&rev=545357&r1=545356&r2=545357
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Page.java (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Page.java Thu Jun 7 18:00:12 2007
@@ -139,36 +139,76 @@
public abstract class Page extends MarkupContainer implements IRedirectListener, IPageMapEntry
{
/**
+ * You can set implementation of the interface in the
+ * {@link Page#serializer} then that implementation will handle the
+ * serialization of this page. The serializePage method is called from the
+ * writeObject method then the implementation override the default
+ * serialization.
+ *
+ * @author jcompagner
+ */
+ public static interface IPageSerializer
+ {
+ /**
+ * Called when page is being deserialized
+ *
+ * @param id
+ * TODO
+ * @param name
+ * TODO
+ * @param page
+ * @param stream
+ * @return New instance to replace page instance being deserialized
+ * @throws IOException
+ * @throws ClassNotFoundException
+ *
+ */
+ public Page deserializePage(int id, String name, Page page, ObjectInputStream stream)
+ throws IOException, ClassNotFoundException;
+
+ /**
+ * Called from the {@link Page#writeObject()} method.
+ *
+ * @param page
+ * The page that must be serialized.
+ * @param stream
+ * ObjectOutputStream
+ * @throws IOException
+ */
+ public void serializePage(Page page, ObjectOutputStream stream) throws IOException;
+ }
+
+ /**
* When passed to {@link Page#getVersion(int)} the latest page version is
* returned.
*/
public static final int LATEST_VERSION = -1;
- private static final long serialVersionUID = 1L;
-
/**
- * {@link #isBookmarkable()} is expensive, we cache the result here
+ * This is a thread local that is used for serializing page references in
+ * this page.It stores a {@link IPageSerializer} which can be set by the
+ * outside world to do the serialization of this page.
*/
- private static final ConcurrentHashMap pageClassToBookmarkableCache = new ConcurrentHashMap();
+ public static final ThreadLocal serializer = new ThreadLocal();
/** True if a new version was created for this request. */
private static final short FLAG_NEW_VERSION = FLAG_RESERVED3;
- /** True if component changes are being tracked. */
- private static final short FLAG_TRACK_CHANGES = FLAG_RESERVED4;
-
/** True if the page should try to be stateless */
private static final int FLAG_STATELESS_HINT = FLAG_RESERVED5;
+ /** True if component changes are being tracked. */
+ private static final short FLAG_TRACK_CHANGES = FLAG_RESERVED4;
+
/** Log. */
private static final Logger log = LoggerFactory.getLogger(Page.class);
/**
- * This is a thread local that is used for serializing page references in
- * this page.It stores a {@link IPageSerializer} which can be set by the
- * outside world to do the serialization of this page.
+ * {@link #isBookmarkable()} is expensive, we cache the result here
*/
- public static final ThreadLocal serializer = new ThreadLocal();
+ private static final ConcurrentHashMap pageClassToBookmarkableCache = new ConcurrentHashMap();
+
+ private static final long serialVersionUID = 1L;
/** Used to create page-unique numbers */
private short autoIndex;
@@ -182,6 +222,9 @@
/** Name of PageMap that this page is stored in */
private String pageMapName;
+ // temporary variable to pass page instance from readObject to readResolve
+ private transient Page pageToResolve = null;
+
/** Set of components that rendered if component use checking is enabled */
private transient Set renderedComponents;
@@ -263,58 +306,6 @@
super(null);
}
- // temporary variable to pass page instance from readObject to readResolve
- private transient Page pageToResolve = null;
-
- // called after readObject
- private Object readResolve() throws ObjectStreamException
- {
- if (pageToResolve == null)
- {
- return this;
- }
- else
- {
- Page page = pageToResolve;
- pageToResolve = null;
- return page;
- }
- }
-
- private void writeObject(java.io.ObjectOutputStream s) throws IOException
- {
- s.writeShort(numericId);
- s.writeObject(pageMapName);
-
-
- IPageSerializer ps = (IPageSerializer)serializer.get();
-
- if (ps != null)
- {
- ps.serializePage(this, s);
- }
- else
- {
- s.defaultWriteObject();
- }
- }
-
- private void readObject(java.io.ObjectInputStream s) throws IOException, ClassNotFoundException
- {
- int id = s.readShort();
- String name = (String)s.readObject();
-
- IPageSerializer ps = (IPageSerializer)serializer.get();
- if (ps != null)
- {
- pageToResolve = ps.deserializePage(id, name, this, s);
- }
- else
- {
- s.defaultReadObject();
- }
- }
-
/**
* Called right after a component's listener method (the provided method
* argument) was called. This method may be used to clean up dependencies,
@@ -358,7 +349,6 @@
{
}
-
/**
* Adds a component to the set of rendered components.
*
@@ -415,6 +405,7 @@
super.detachModels();
}
+
/**
* Mark this page as dirty in the session
*/
@@ -525,14 +516,6 @@
}
/**
- * @return
- */
- public final String getPageMapName()
- {
- return pageMapName;
- }
-
- /**
* @return Get a page map entry for this page. By default, this is the page
* itself. But if you know of some way to compress the state for the
* page, you can return a custom implementation that produces the
@@ -544,6 +527,14 @@
}
/**
+ * @return
+ */
+ public final String getPageMapName()
+ {
+ return pageMapName;
+ }
+
+ /**
* @return Size of this page in bytes
*/
public final long getSizeInBytes()
@@ -892,16 +883,16 @@
try
{
beforeRender();
- }
- catch(RuntimeException e)
+ }
+ catch (RuntimeException e)
{
// if an exception is thrown then we have to call after render
// else the components could be in a wrong state (rendering)
try
{
afterRender();
- }
- catch(RuntimeException e2)
+ }
+ catch (RuntimeException e2)
{
// ignore this one could be a result off.
}
@@ -1244,6 +1235,55 @@
}
}
+ private void readObject(java.io.ObjectInputStream s) throws IOException, ClassNotFoundException
+ {
+ int id = s.readShort();
+ String name = (String)s.readObject();
+
+ IPageSerializer ps = (IPageSerializer)serializer.get();
+ if (ps != null)
+ {
+ pageToResolve = ps.deserializePage(id, name, this, s);
+ }
+ else
+ {
+ s.defaultReadObject();
+ }
+ }
+
+ // called after readObject
+ private Object readResolve() throws ObjectStreamException
+ {
+ if (pageToResolve == null)
+ {
+ return this;
+ }
+ else
+ {
+ Page page = pageToResolve;
+ pageToResolve = null;
+ return page;
+ }
+ }
+
+ private void writeObject(java.io.ObjectOutputStream s) throws IOException
+ {
+ s.writeShort(numericId);
+ s.writeObject(pageMapName);
+
+
+ IPageSerializer ps = (IPageSerializer)serializer.get();
+
+ if (ps != null)
+ {
+ ps.serializePage(this, s);
+ }
+ else
+ {
+ s.defaultWriteObject();
+ }
+ }
+
/**
* Set-up response with appropriate content type, locale and encoding. The
* locale is set equal to the session's locale. The content type header
@@ -1349,6 +1389,7 @@
super.onDetach();
}
+
/**
* Renders this container to the given response object.
*
@@ -1367,7 +1408,6 @@
renderAll(associatedMarkupStream);
}
-
/**
* A component was added.
*
@@ -1462,45 +1502,5 @@
void setPageStateless(Boolean stateless)
{
this.stateless = stateless;
- }
-
- /**
- * You can set implementation of the interface in the
- * {@link Page#serializer} then that implementation will handle the
- * serialization of this page. The serializePage method is called from the
- * writeObject method then the implementation override the default
- * serialization.
- *
- * @author jcompagner
- */
- public static interface IPageSerializer
- {
- /**
- * Called from the {@link Page#writeObject()} method.
- *
- * @param page
- * The page that must be serialized.
- * @param stream
- * ObjectOutputStream
- * @throws IOException
- */
- public void serializePage(Page page, ObjectOutputStream stream) throws IOException;
-
- /**
- * Called when page is being deserialized
- *
- * @param id
- * TODO
- * @param name
- * TODO
- * @param page
- * @param stream
- * @return New instance to replace page instance being deserialized
- * @throws IOException
- * @throws ClassNotFoundException
- *
- */
- public Page deserializePage(int id, String name, Page page, ObjectInputStream stream)
- throws IOException, ClassNotFoundException;
}
}