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.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  }