View Javadoc

1   package org.paneris.melati.site.model;
2   
3   import org.paneris.melati.site.model.generated.UploadedFileTableBase;
4   import org.melati.poem.DefinitionSource;
5   import org.melati.poem.Database;
6   import org.melati.poem.PoemException;
7   import org.melati.poem.Persistent;
8   import org.melati.poem.AccessPoemException;
9   import org.melati.poem.InitialisationPoemException;
10  import org.melati.poem.ValidationPoemException;
11  import org.melati.poem.PoemThread;
12  import org.melati.poem.User;
13  import java.sql.Date;
14  
15  /**
16   * Melati POEM generated, programmer modifiable stub 
17   * for a <code>UploadedFileTable</code> object.
18   * <p>
19   * Description: 
20   *   A file uploaded by a user. 
21   * </p>
22   *
23   * 
24   * <table> 
25   * <tr><th colspan='3'>
26   * Field summary for SQL table <code>UploadedFile</code>
27   * </th></tr>
28   * <tr><th>Name</th><th>Type</th><th>Description</th></tr>
29   * <tr><td> type </td><td> UploadedFileType </td><td> The type of this file 
30   * </td></tr> 
31   * <tr><td> description </td><td> String </td><td> A description of the file 
32   * </td></tr> 
33   * <tr><td> size </td><td> Integer </td><td> The size of this file </td></tr> 
34   * <tr><td> when </td><td> Date </td><td> The date on which this file was 
35   * uploaded </td></tr> 
36   * <tr><td> uploadedby </td><td> User </td><td> The user who uploaded this 
37   * file </td></tr> 
38   * <tr><td> deleted </td><td> Boolean </td><td> Whether this file been 
39   * deleted or not </td></tr> 
40   * </table> 
41   * 
42   * @generator  org.melati.poem.prepro.TableDef#generateTableMainJava 
43   */
44  public class UploadedFileTable extends UploadedFileTableBase {
45  
46   /**
47    * Constructor.
48    * 
49    * @generator org.melati.poem.prepro.TableDef#generateTableMainJava 
50    * @param database          the POEM database we are using
51    * @param name              the name of this <code>Table</code>
52    * @param definitionSource  which definition is being used
53    * @throws PoemException    if anything goes wrong
54    */
55    public UploadedFileTable(
56        Database database, String name,
57        DefinitionSource definitionSource) throws PoemException {
58      super(database, name, definitionSource);
59    }
60  
61    // programmer's domain-specific code here
62  
63    public void create(Persistent persistent)
64        throws AccessPoemException, ValidationPoemException,
65               InitialisationPoemException {
66  
67      Integer userTroid;
68      try{
69        User user = (User)PoemThread.accessToken();
70        userTroid = user.troid();
71      } catch (ClassCastException e){ // When access token is root ie not a real user
72        userTroid = new Integer(1);  
73      }
74      
75  /*
76  Need canUpload capability?
77  
78      if (!user.canUploadTo(account))
79        throw new AccessPoemException(PoemThread.accessToken(),
80                              getDatabase().administerCapability());
81  */
82  
83  /*
84      File testfile = new File( ((UploadedFile)persistent).getPath_unsafe() );
85      long size = testfile.length();
86      String sizeString = null;
87      if ((size / KILOBYTE) >= 1) {
88        if ((size / MEGABYTE) >= 1) {
89          if ((size / GIGABYTE) >= 1)
90            sizeString = (size / GIGABYTE) + " Gb";
91          else
92            sizeString = (size / MEGABYTE) + " Mb";
93        } else {
94          sizeString = (size / KILOBYTE) + " Kb";
95        }
96      } else {
97        sizeString = size + " bytes";
98      }
99  */
100     persistent.setRaw("uploadedby", userTroid);
101     persistent.setRaw("when", new Date(new java.util.Date().getTime()));
102     persistent.setRaw("deleted", Boolean.FALSE);
103 
104     super.create(persistent);
105   }
106 
107   /**
108    * @return the relative url 
109    */
110   public String getRelativeUrl() {
111     return "/";
112   }
113 
114 }