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.Downloader;
7
8 public class SongDownloadEncoder implements ServiceEncoder {
9
10 public void decode(ServiceEncoding encoding) {
11 String servletPath = encoding.getServletPath();
12
13 if (servletPath.startsWith("/song/")) {
14 String id = servletPath.substring(6, servletPath.indexOf(".mp3"));
15
16 encoding.setParameterValue(ServiceConstants.SERVICE, Downloader.SERVICE_NAME);
17 encoding.setParameterValue("id", id);
18 encoding.setParameterValue("kind", "S");
19 }
20 }
21
22 public void encode(ServiceEncoding encoding) {
23 String service = encoding.getParameterValue(ServiceConstants.SERVICE);
24 String kind = encoding.getParameterValue("kind");
25 if ("S".equals(kind) && service.equals(Downloader.SERVICE_NAME)) {
26 StringBuilder sb = new StringBuilder("/song/");
27 sb.append(encoding.getParameterValue("id"));
28 sb.append(".mp3");
29 encoding.setServletPath(sb.toString());
30
31 encoding.setParameterValue(ServiceConstants.SERVICE, null);
32 encoding.setParameterValue("id", null);
33 encoding.setParameterValue("kind", null);
34 }
35 }
36
37
38 }