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 }