001    package org.trails.component.blob;
002    
003    import org.apache.tapestry.IAsset;
004    import org.apache.tapestry.request.IUploadFile;
005    import org.trails.descriptor.IClassDescriptor;
006    import org.trails.descriptor.IPropertyDescriptor;
007    
008    /**
009     * An interface to the persistence mechanism that allows to plug in different strategies for persisting binary files.
010     */
011    public interface IFilePersister
012    {
013            IAsset getAsset(IPropertyDescriptor propertyDescriptor, Object model);
014    
015            void store(IPropertyDescriptor propertyDescriptor, Object model, IUploadFile file);
016    
017            public byte[] getData(IPropertyDescriptor propertyDescriptor, Object model);
018    
019            String getContentType(IPropertyDescriptor propertyDescriptor, Object model);
020    
021            String getFileName(IPropertyDescriptor propertyDescriptor, Object model);
022    
023            void delete(IPropertyDescriptor propertyDescriptor, Object model);
024    }