View Javadoc

1   package org.musicontroller.gui.dynamic;
2   
3   import org.apache.tapestry.engine.ServiceEncoder;
4   import org.apache.tapestry.engine.ServiceEncoding;
5   import org.apache.tapestry.services.ServiceConstants;
6   import org.musicontroller.streaming.RssService;
7   
8   public class PodcastEncoder implements ServiceEncoder {
9   
10  	public void decode(ServiceEncoding encoding) {
11  		String servletPath = encoding.getServletPath();
12  
13  	    if (servletPath.startsWith("/rss/")) {
14  	    	String[] params = servletPath.split("/");
15  	
16  		    encoding.setParameterValue(ServiceConstants.SERVICE, RssService.SERVICE_NAME);
17  		    encoding.setParameterValue("userid", params[2]);
18  		    encoding.setParameterValue("passhash", params[3]);
19  		    encoding.setParameterValue("id", params[4].replaceAll(".rss", ""));
20  	    }
21  	}
22  
23  	public void encode(ServiceEncoding encoding) {
24  		String service = encoding.getParameterValue(ServiceConstants.SERVICE);
25  		if (service.equals(RssService.SERVICE_NAME)) {
26  			StringBuilder sb = new StringBuilder("/rss/");
27  			sb.append(encoding.getParameterValue("userid"));
28  			sb.append("/");
29  			sb.append(encoding.getParameterValue("passhash"));
30  			sb.append("/");
31  			sb.append(encoding.getParameterValue("id"));
32  			sb.append(".rss");
33  		    encoding.setServletPath(sb.toString());
34  
35  		    encoding.setParameterValue(ServiceConstants.SERVICE, null);
36  		    encoding.setParameterValue("id", null);
37  		    encoding.setParameterValue("userid", null);
38  		    encoding.setParameterValue("passhash", null);
39  		}
40  	}
41  
42  
43  }