001    package org.trails.record;
002    
003    
004    import java.util.Collection;
005    import java.util.Collections;
006    import java.util.HashSet;
007    import java.util.Set;
008    
009    import org.apache.hivemind.util.Defense;
010    import org.apache.tapestry.engine.ServiceEncoding;
011    import org.apache.tapestry.services.DataSqueezer;
012    import org.apache.tapestry.web.WebRequest;
013    
014    public class ClientAsoPropertyPersistenceStrategy implements IClientAsoPropertyPersistenceStrategy
015    {
016    
017            private Set<String> propertiesNames = new HashSet<String>();
018            private DataSqueezer dataSqueezer;
019            protected WebRequest request;
020    
021            public void initializeService()
022            {
023            }
024    
025            public void store(String pageName, String idPath, String propertyName, Object newValue)
026            {
027            }
028    
029            public Collection getStoredChanges(String pageName)
030            {
031                    return Collections.EMPTY_LIST;
032            }
033    
034            public void discardStoredChanges(String pageName)
035            {
036            }
037    
038            public void addParametersForPersistentProperties(ServiceEncoding encoding, boolean post)
039            {
040                    Defense.notNull(encoding, "encoding");
041                    for (String propertyName : propertiesNames)
042                    {
043                            encoding.setParameterValue(propertyName, dataSqueezer.squeeze(request.getAttribute(propertyName)));
044                    }
045            }
046    
047            public void setRequest(WebRequest request)
048            {
049                    this.request = request;
050            }
051    
052            public void setDataSqueezer(DataSqueezer dataSqueezer)
053            {
054                    this.dataSqueezer = dataSqueezer;
055            }
056    
057            public void addPropertyName(String propertyName)
058            {
059                    propertiesNames.add(propertyName);
060            }
061    }