/* * The contents of this file are subject to the Mozilla Public License Version 1.1 * (the "License"); you may not use this file except in compliance with the License. * You may obtain a copy of the License at . * * Software distributed under the License is distributed on an "AS IS" basis, WITHOUT * WARRANTY OF ANY KIND, either express or implied. See the License for the specific * language governing rights and limitations under the License. * * The Original Code is the Venice Web Communities System. * * The Initial Developer of the Original Code is Eric J. Bowersox , * for Silverwrist Design Studios. Portions created by Eric J. Bowersox are * Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved. * * Contributor(s): */ package com.silverwrist.venice.servlets; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import com.silverwrist.venice.core.*; import com.silverwrist.venice.except.*; import com.silverwrist.venice.servlets.format.*; public class FindPost extends VeniceServlet { /*-------------------------------------------------------------------------------- * Overrides from class HttpServlet *-------------------------------------------------------------------------------- */ public String getServletInfo() { String rc = "FindPost servlet - Searches for posts in communities, conferences, and/or topics\n" + "Part of the Venice Web Communities System\n"; return rc; } // end getServletInfo /*-------------------------------------------------------------------------------- * Overrides from class VeniceServlet *-------------------------------------------------------------------------------- */ protected VeniceContent doVeniceGet(HttpServletRequest request, VeniceEngine engine, UserContext user, RenderData rdat) throws ServletException, IOException, VeniceServletResult { CommunityContext comm = getCommunityParameter(request,user,true,"top"); changeMenuCommunity(request,comm); String locator = "sig=" + comm.getCommunityID(); ConferenceContext conf = getConferenceParameter(request,comm,false,"confops?" + locator); TopicContext topic = null; if (conf!=null) { // find the topic parameter locator += ("&conf=" + conf.getConfID()); topic = getTopicParameter(request,conf,false,"confdisp?" + locator); if (topic!=null) locator += ("&top=" + topic.getTopicNumber()); } // end if setMyLocation(request,"findpost?" + locator); return new FindPostData(comm,conf,topic); } // end doVeniceGet protected VeniceContent doVenicePost(HttpServletRequest request, VeniceEngine engine, UserContext user, RenderData rdat) throws ServletException, IOException, VeniceServletResult { CommunityContext comm = getCommunityParameter(request,user,true,"top"); changeMenuCommunity(request,comm); String locator = "sig=" + comm.getCommunityID(); ConferenceContext conf = getConferenceParameter(request,comm,false,"confops?" + locator); TopicContext topic = null; if (conf!=null) { // find the topic parameter locator += ("&conf=" + conf.getConfID()); topic = getTopicParameter(request,conf,false,"confdisp?" + locator); if (topic!=null) locator += ("&top=" + topic.getTopicNumber()); } // end if setMyLocation(request,"findpost?" + locator); FindPostData data = new FindPostData(comm,conf,topic); try { // attempt to configure the display data.doSearch(request,engine); } // end try catch (AccessError ae) { // error in find parameters return new ErrorBox("Find Error",ae.getMessage(),"top"); } // end catch catch (DataException de) { // database error, man return new ErrorBox("Database Error","Database error on find: " + de.getMessage(),"top"); } // end catch return data; } // end doVenicePost } // end class FindPost