001 package org.trails.component.blob;
002
003 import org.apache.tapestry.BaseComponent;
004 import org.apache.tapestry.annotations.ComponentClass;
005 import org.apache.tapestry.annotations.InjectObject;
006 import org.apache.tapestry.annotations.Parameter;
007 import org.apache.tapestry.request.IUploadFile;
008 import org.trails.descriptor.IClassDescriptor;
009 import org.trails.descriptor.IPropertyDescriptor;
010
011 @ComponentClass(allowBody = true, allowInformalParameters = true)
012 public abstract class TrailsUpload extends BaseComponent
013 {
014 @InjectObject("service:trails.core.FilePersister")
015 public abstract IFilePersister getFilePersister();
016
017 @Parameter(required = true)
018 public abstract Object getModel();
019
020 @Parameter(required = true)
021 public abstract IPropertyDescriptor getPropertyDescriptor();
022
023 public IUploadFile getFile()
024 {
025 return null;
026 }
027
028 public void setFile(IUploadFile file)
029 {
030 if (file != null)
031 {
032 getFilePersister().store(getPropertyDescriptor(), getModel(), file);
033 }
034 }
035 }