001    package org.tynamo.blob;
002    
003    import org.apache.tapestry5.Link;
004    import org.apache.tapestry5.upload.services.UploadedFile;
005    import org.tynamo.descriptor.TynamoPropertyDescriptor;
006    
007    
008    /**
009     * An interface to the persistence mechanism that allows to plug in different strategies for persisting binary files.
010     */
011    public interface BlobManager
012    {
013            Link createBlobLink(TynamoPropertyDescriptor propertyDescriptor, Object model);
014    
015            void store(TynamoPropertyDescriptor propertyDescriptor, Object model, UploadedFile file);
016    
017            public byte[] getData(TynamoPropertyDescriptor propertyDescriptor, Object model);
018    
019            String getContentType(TynamoPropertyDescriptor propertyDescriptor, Object model);
020    
021            String getFileName(TynamoPropertyDescriptor propertyDescriptor, Object model);
022    
023            void delete(TynamoPropertyDescriptor propertyDescriptor, Object model);
024    
025            boolean isNotNull(TynamoPropertyDescriptor propertyDescriptor, Object model);
026    }