KickJava   Java API By Example, From Geeks To Geeks.

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


1 /*
2  * ItemsBySubjectServlet.java
3  *
4  * Version: $Revision: 1.1 $
5  *
6  * Date: $Date: 2006/01/12 21:47:30 $
7  *
8  * Copyright (c) 2002, 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 subject.
63  *
64  * @version $Revision: 1.1 $
65  */

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