View Javadoc
1   package org.argeo.eclipse.ui.rcp.internal.rwt;
2   
3   import java.io.ByteArrayInputStream;
4   import java.io.IOException;
5   import java.io.InputStream;
6   import java.util.Collections;
7   import java.util.Map;
8   import java.util.TreeMap;
9   
10  import org.apache.commons.io.IOUtils;
11  import org.eclipse.rap.rwt.service.ResourceManager;
12  
13  public class RcpResourceManager implements ResourceManager {
14  	private Map<String, byte[]> register = Collections
15  			.synchronizedMap(new TreeMap<String, byte[]>());
16  
17  	@Override
18  	public void register(String name, InputStream in) {
19  		try {
20  			register.put(name, IOUtils.toByteArray(in));
21  		} catch (IOException e) {
22  			throw new RuntimeException("Cannot register " + name, e);
23  		}
24  	}
25  
26  	@Override
27  	public boolean unregister(String name) {
28  		return register.remove(name) != null;
29  	}
30  
31  	@Override
32  	public InputStream getRegisteredContent(String name) {
33  		return new ByteArrayInputStream(register.get(name));
34  	}
35  
36  	@Override
37  	public String getLocation(String name) {
38  		return name;
39  	}
40  
41  	@Override
42  	public boolean isRegistered(String name) {
43  		return register.containsKey(name);
44  	}
45  
46  }