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 }