View Javadoc
1   /******************************************************************************
2    * PicsDao.java - Dao interface for the pics
3    * 
4    * PicMan - The BuckoSoft Picture Manager in Java
5    * Copyright(c) 2005 - Dick Balaska
6    * 
7    */
8   package com.buckosoft.PicMan.db;
9   
10  import java.util.Calendar;
11  import java.util.Date;
12  import java.util.HashMap;
13  import java.util.List;
14  
15  import com.buckosoft.PicMan.domain.Pic;
16  
17  /** Dao interface for the {@link com.buckosoft.PicMan.domain.Pic}s.
18   * @author Dick Balaska
19   * @since 2005/07/31
20   * @see <a href="http://cvs.buckosoft.com/Projects/java/PicMan/PicMan/src/com/buckosoft/PicMan/db/PicsDao.java">PicsDao.java</a>
21   */
22  public interface PicsDao {
23  
24  	/** Get a List of all of the <code>Pic</code>s in the database.
25  	 * @return A pretty big List
26  	 */
27  	List<Pic>	getPics();
28  	
29  	/** Get a List of names all of the pics in the database.
30  	 * @return A big List of picNames
31  	 */
32  	List<String>	getPicNames();
33  	
34  	/** Get a List of all of the <code>Pic</code>s in the database that match this name.  Wildcards are supported.
35  	 * @param name The name (or partial name) of the pics to fetch.
36  	 * @return A List of <code>Pic</code>s.
37  	 */
38  	List<Pic>	getPics(String name);
39  	
40  	/** Get a List of Pics from this List of picNames.
41  	 * @param list A List of picNames to fetch
42  	 * @return The List
43  	 */
44  	List<Pic>	getPics(List<String> list);
45  
46  	/** Get a list of Pics that are in this subdirectory
47  	 * @param rid Root id to search under
48  	 * @param dirName The directory, i.e. "2002/20021225"
49  	 * @return A List of Pic.  The dirname will match any and all <code>Root</code>s
50  	 */
51  	List<Pic>	getPicsInDir(int rid, String dirName);
52  
53  	/** Get a list of Pics that are newer than this date
54  	 * @param calendar The date to compare to
55  	 * @return A List of <code>Pic</code>s.
56  	 */
57  	List<Pic>	getPicsNewerThan(Calendar calendar);
58  
59  	/** Return a list of Pics that have this md5Sum
60  	 * @param md5sum
61  	 * @return The list, may be empty
62  	 */
63  	List<Pic>	getPicsByMD5Sum(long md5sum);
64  
65  	/** Get a list of pic names that pass this date function.
66  	 * @param operator An index into the MetaSet rateOps table.  i.e. = != &lt; &gt;
67  	 * @param operand the date to check. i.e. "2009-07-26"
68  	 * @return A List of pic names
69  	 */
70  	List<String>	getPicNamesByDateFunc(String operator, String operand);
71  
72  	List<String>	getPicNamesByRootFunc(String operator, int rid);
73  
74  	/** Get a HashMap of all of the Pic names in the database.
75  	 * @return The map
76  	 */
77  	HashMap<String, Date>		getPicsMap();
78  	
79  	/** Add this <code>Pic</code> to the database.
80  	 * @param pic The Pic to add.  pid is assumed to be 0.
81  	 */
82  	void		addPic(Pic pic);
83  	
84  	/** Update this <code>Pic</code> in the database.
85  	 * Pic is assumed to exist and pid must not be 0.
86  	 * @param pic The Pic to update.
87  	 */
88  	void		updatePic(Pic pic);
89  	
90  	/** Get a Pic
91  	 * @param pid The pid to query
92  	 * @return The Pic
93  	 */
94  	Pic			getPic(int pid);
95  	
96  	/** Get a Pic who's name matches this picName.
97  	 * @param picName The name of the <code>Pic</code> to query.
98  	 * @return The Pic that matches this picName or <code>null</code>.
99  	 */
100 	Pic			getPic(String picName);
101 
102 	/** Get the newest pic in the database.
103 	 * @return The Pic with the newest Timestamp
104 	 */
105 	Pic			getNewestPic();
106 
107 	/** Return a random pic from the database
108 	 * @return Any pic from the database
109 	 */
110 	Pic			getRandomPic();
111 
112 	/** Return a random pic from the database that lives in this root
113 	 * @return Any pic from the database
114 	 */
115 	Pic			getRandomPic(int rid);
116 	
117 	/** Determine the highest numbered thumb cache subdirectory used.
118 	 * @return the highest number, or 0 if no thumbs are cached.
119 	 */
120 	int		getMaxThumbCacheDirUsed();
121 	
122 	/** Determine how many thumb cache entries are in this thumb dir
123 	 * @param cacheDir Which thumb cache directory to check
124 	 * @return The Count
125 	 */
126 	int		getThumbCacheFillCount(int cacheDir);
127 	
128 	/** Return how many pics live in this root.
129 	 * @param rid The root id to query.
130 	 * @return The number of Pics in this root. 
131 	 */
132 	int 	getPicCount(int rid);
133 }