View Javadoc

1   /*
2    *  Copyright 2007 Tacos.
3    * 
4    *  Licensed under the Apache License, Version 2.0 (the "License");
5    *  you may not use this file except in compliance with the License.
6    *  You may obtain a copy of the License at
7    * 
8    *       http://www.apache.org/licenses/LICENSE-2.0
9    * 
10   *  Unless required by applicable law or agreed to in writing, software
11   *  distributed under the License is distributed on an "AS IS" BASIS,
12   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   *  See the License for the specific language governing permissions and
14   *  limitations under the License.
15   *  under the License.
16   */
17  package net.sf.tacos.asset;
18  
19  import java.io.InputStream;
20  
21  import org.apache.tapestry.IAsset;
22  import org.apache.hivemind.Resource;
23  import org.apache.hivemind.Location;
24  import org.apache.tapestry.services.AbsoluteURLBuilder;
25  
26  /**
27   * Decorates an asset in order to generate an absolute url.
28   * @author Andreas Andreou
29   */
30  public class AbsoluteAsset implements IAsset {
31  
32      private IAsset asset;
33      private AbsoluteURLBuilder absoluteURLBuilder;
34  
35      public AbsoluteAsset(IAsset asset, AbsoluteURLBuilder absoluteURLBuilder) {
36          this.asset = asset;
37          this.absoluteURLBuilder = absoluteURLBuilder;
38      }
39  
40      public String buildURL() {
41          return absoluteURLBuilder.constructURL(asset.buildURL());
42      }
43  
44      public InputStream getResourceAsStream() {
45          return asset.getResourceAsStream();
46      }
47  
48      public Resource getResourceLocation() {
49          return asset.getResourceLocation();
50      }
51  
52      public Location getLocation() {
53          return asset.getLocation();
54      }
55  }
56