001    package org.trails.record;
002    
003    import org.apache.tapestry.IRequestCycle;
004    import org.apache.tapestry.engine.ServiceEncoding;
005    import org.apache.tapestry.record.AbstractPrefixedClientPropertyPersistenceScope;
006    import org.apache.tapestry.record.PersistentPropertyData;
007    
008    /**
009     * Based on com.zillow.web.infrastructure.FormClientPropertyPersistenceStrategy
010     * described in http://wiki.apache.org/jakarta-tapestry/FormClientPersistence
011     */
012    public class FormClientPropertyPersistenceScope extends AbstractPrefixedClientPropertyPersistenceScope
013    {
014            private IRequestCycle _requestCycle;
015    
016            public FormClientPropertyPersistenceScope()
017            {
018                    super("form:");
019            }
020    
021            public boolean shouldEncodeState(ServiceEncoding encoding, String pageName, PersistentPropertyData data)
022            {
023                    return pageName.equals(_requestCycle.getPage().getPageName());
024            }
025    
026            public void setRequestCycle(IRequestCycle requestCycle)
027            {
028                    _requestCycle = requestCycle;
029            }
030    
031    }