View Javadoc

1   package org.sourceforge.vlibrary.util;
2   
3   import java.util.Map;
4   
5   public interface SruSrwClientInterface {
6   
7       /**
8       * Looks up using SRU/SRW defined endpoint an identifier (normally ISBN)
9       * and returns the first record returned by SRU/SRW as a HashMap of fields
10      * 
11      * @param identifier Normally the isbn of the book to search, 
12      *             expressed in the "xxxxxxxxxx" format
13      *             <br>ISBN can be in 10 or 13 digit format, no spaces or dashes </br>
14      *             <br>If something else is passed instead of an (unique) ISBN,
15      *             the first record (of potentially many) is always returned. </br>
16      *             <br>This is a limitation due to the fact that the main 
17      *             SRU/SRW SP (LOC.GOV) does not seem to have implemented fully
18      *             the dc (Dublin Core) context (missing especially the dc.identifier index). </br>
19      *             <br>For example, a search for Web Services will return:
20      *             recordMap={TITLE=Introduction to Semantic Web and Semantic Web services /, PUBLISHER=Boca Raton, FL : CRC Press,, AUTHOR=Yu, Liyang., DATE=2007., SUBJECTSLIST=[Semantic Web., Web services.]} </br>
21      *             Note that any dentifier strings containing spaces must be escaped (ex: "%22Web%20Services%22").
22      * @see <a href="http://www.loc.gov/standards/sru/"> SRU/SRW Specification for more details </a>
23      *
24      * @return Map containing the elements described above
25      *         using the names:   AUTHOR, TITLE, PUBLISHER, PUBLISHEDDATE, SUBJECTSLIST
26      *         and String values,  with the exception of SubjectsList whose value 
27      *         is a List of string subjects
28      *
29      * @throws Exception if either parameters are incorrect, the SRU/SRW enpoint
30      *         cannot be called, if the returned XML cannot be parsed or
31      *         if the record identified by identifier could not be found by provider
32      */
33      public Map callSruSrwProvider( String identifier ) throws Exception; 
34  
35  }