001 package org.trails.component.blob;
002
003 import org.apache.tapestry.asset.AbstractAsset;
004 import org.apache.tapestry.engine.ILink;
005 import org.trails.descriptor.IPropertyDescriptor;
006
007 import java.io.InputStream;
008 import java.io.Serializable;
009
010 /**
011 * An implementation of {@link org.apache.tapestry.IAsset} for assets that are entity properties.
012 */
013 public class TrailsBlobAsset extends AbstractAsset
014 {
015
016 private BlobDownloadService bytesService;
017
018 private Serializable id;
019
020 private IPropertyDescriptor propertyDescriptor;
021
022 public TrailsBlobAsset(BlobDownloadService chartService, IPropertyDescriptor propertyDescriptor, Serializable id)
023 {
024 super(null, null);
025 this.bytesService = chartService;
026 this.id = id;
027 this.propertyDescriptor = propertyDescriptor;
028 }
029
030 public IPropertyDescriptor getPropertyDescriptor()
031 {
032 return propertyDescriptor;
033 }
034
035 public Serializable getId()
036 {
037 return id;
038 }
039
040 public String buildURL()
041 {
042 ILink l = bytesService.getLink(false, new Object[]{this});
043 return l.getURL();
044 }
045
046 public InputStream getResourceAsStream()
047 {
048 return null;
049 }
050 }