KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > dspace > app > webui > servlet > ItemsByAuthorServlet


1 /*
2  * ItemsByAuthorServlet.java
3  *
4  * Version: $Revision: 1.7 $
5  *
6  * Date: $Date: 2005/04/20 14:22:36 $
7  *
8  * Copyright (c) 2002-2005, Hewlett-Packard Company and Massachusetts
9  * Institute of Technology. All rights reserved.
10  *
11  * Redistribution and use in source and binary forms, with or without
12  * modification, are permitted provided that the following conditions are
13  * met:
14  *
15  * - Redistributions of source code must retain the above copyright
16  * notice, this list of conditions and the following disclaimer.
17  *
18  * - Redistributions in binary form must reproduce the above copyright
19  * notice, this list of conditions and the following disclaimer in the
20  * documentation and/or other materials provided with the distribution.
21  *
22  * - Neither the name of the Hewlett-Packard Company nor the name of the
23  * Massachusetts Institute of Technology nor the names of their
24  * contributors may be used to endorse or promote products derived from
25  * this software without specific prior written permission.
26  *
27  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
28  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
29  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
30  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
31  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
32  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
33  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
34  * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
35  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
36  * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
37  * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
38  * DAMAGE.
39  */

40 package org.dspace.app.webui.servlet;
41
42 import java.io.IOException JavaDoc;
43 import java.sql.SQLException JavaDoc;
44
45 import javax.servlet.ServletException JavaDoc;
46 import javax.servlet.http.HttpServletRequest JavaDoc;
47 import javax.servlet.http.HttpServletResponse JavaDoc;
48
49 import org.apache.log4j.Logger;
50 import org.dspace.app.webui.util.JSPManager;
51 import org.dspace.app.webui.util.UIUtil;
52 import org.dspace.authorize.AuthorizeException;
53 import org.dspace.browse.Browse;
54 import org.dspace.browse.BrowseInfo;
55 import org.dspace.browse.BrowseScope;
56 import org.dspace.content.Collection;
57 import org.dspace.content.Community;
58 import org.dspace.core.Context;
59 import org.dspace.core.LogManager;
60
61 /**
62  * Displays the items with a particular author.
63  *
64  * @author Robert Tansley
65  * @version $Revision: 1.7 $
66  */

67 public class ItemsByAuthorServlet extends DSpaceServlet
68 {
69     /** log4j logger */
70     private static Logger log = Logger.getLogger(ItemsByAuthorServlet.class);
71
72     protected void doDSGet(Context context, HttpServletRequest JavaDoc request,
73             HttpServletResponse JavaDoc response) throws ServletException JavaDoc, IOException JavaDoc,
74             SQLException JavaDoc, AuthorizeException
75     {
76         // We will resolve the HTTP request parameters into a scope
77
BrowseScope scope = new BrowseScope(context);
78
79         // Get log information
80
String JavaDoc logInfo = "";
81
82         // Get the HTTP parameters
83
String JavaDoc author = request.getParameter("author");
84         String JavaDoc order = request.getParameter("order");
85
86         // How should we order the items?
87
boolean orderByTitle;
88
89         if ((order != null) && order.equalsIgnoreCase("title"))
90         {
91             orderByTitle = true;
92             logInfo = "order=title";
93         }
94         else
95         {
96             orderByTitle = false;
97             logInfo = "order=date";
98         }
99
100         // Get the community or collection scope
101
Community community = UIUtil.getCommunityLocation(request);
102         Collection collection = UIUtil.getCollectionLocation(request);
103
104         if (collection != null)
105         {
106             logInfo = logInfo + ",collection_id=" + collection.getID();
107             scope.setScope(collection);
108         }
109         else if (community != null)
110         {
111             logInfo = logInfo + ",community_id=" + community.getID();
112             scope.setScope(community);
113         }
114
115         // Ensure author is non-null
116
if (author == null)
117         {
118             author = "";
119         }
120
121         // Do the browse
122
scope.setFocus(author);
123
124         BrowseInfo browseInfo = Browse.getItemsByAuthor(scope, orderByTitle);
125
126         log.info(LogManager.getHeader(context, "items_by_author", logInfo
127                 + ",result_count=" + browseInfo.getResultCount()));
128
129         // Display the JSP
130
request.setAttribute("community", community);
131         request.setAttribute("collection", collection);
132         request.setAttribute("author", author);
133         request.setAttribute("order.by.title", new Boolean JavaDoc(orderByTitle));
134         request.setAttribute("browse.info", browseInfo);
135
136         JSPManager.showJSP(request, response, "/browse/items-by-author.jsp");
137     }
138 }
139
Popular Tags