View Javadoc

1   package org.sourceforge.vlibrary.user.dao;
2   
3   import java.util.ArrayList;
4   
5   import org.sourceforge.vlibrary.exceptions.LibraryException;
6   import org.sourceforge.vlibrary.user.domain.Author;
7   
8   
9   /**
10   * 
11   * Author data access interface.
12   * 
13   * @version $Revision$ $Date$
14   *
15   */
16  
17  public interface AuthorDAO {
18      
19      /** 
20       * <p>Inserts the given author into the database. Has the side effect of
21       *  setting the <code>id</code> field of <code>author</code> to the
22       *  sequentially generated ID of the new record.
23       *  </p>
24       *  <p>First checks to see if an author with the same 
25       *  <code>firstName</code> and <code>lastName</code> as <code>author</code>
26       *  exists. If so, no insert is performed; but <code>author.id</code> is
27       *  updated to the id of the previously existing record.
28       *  </p>
29       *
30       * @throws LibraryException if a data access error occurs
31       */
32      void insert (Author author) throws LibraryException;
33     
34      /**
35       * Walks input ArrayList, looking up and setting ID properties for
36       * each Author in the list.  Lookup is based on first name + last name.
37       * If an Author is not found, a new entry is inserted into the database
38       * and the ID of the newly created record is assigned to the instance.
39       *
40       * @param authors = ArrayList of Authors
41       * @exception LibraryException
42       */
43      void setAuthorIds(ArrayList authors) throws LibraryException;
44      
45      /**
46       * Finds the id of the given <code>Author</code> object in the database,
47       * using the <code>firstName</code> and <code>lastName</code> properties
48       * to lookup the record.
49       *
50       * @param author Author to lookup by name
51       * @return Long id of the Author
52       * @throws LibraryException
53       */
54      Long findAuthorByFirstLastName(Author author) throws LibraryException;
55      
56      
57  }