104 lines
2.4 KiB
Java
104 lines
2.4 KiB
Java
package org.thdl.lex.commands;
|
|
|
|
import org.thdl.lex.*;
|
|
import org.thdl.lex.component.*;
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpSession;
|
|
import java.sql.ResultSet;
|
|
import java.sql.SQLException;
|
|
import java.util.*;
|
|
|
|
|
|
/**
|
|
* Description of the Class
|
|
*
|
|
*@author travis
|
|
*@created October 1, 2003
|
|
*/
|
|
public class FindCommand extends LexCommand implements Command
|
|
{
|
|
//helper methods
|
|
/**
|
|
* Description of the Method
|
|
*
|
|
*@param req Description of Parameter
|
|
*@param component Description of Parameter
|
|
*@return Description of the Returned Value
|
|
*@exception CommandException Description of Exception
|
|
*@since
|
|
*/
|
|
public String execute( HttpServletRequest req, ILexComponent component ) throws CommandException
|
|
{
|
|
try
|
|
{
|
|
String msg = null;
|
|
String forward = (String) getForwards().get( req.getParameter( LexConstants.LABEL_REQ_PARAM ) );
|
|
|
|
component.populate( req.getParameterMap() );
|
|
setNext( forward );
|
|
|
|
if ( component instanceof ITerm )
|
|
{
|
|
ITerm term = (ITerm) component;
|
|
|
|
LexQuery query = getSessionMgr().getQuery( req.getSession( true ) );
|
|
|
|
query.setQueryComponent( term );
|
|
LexComponentRepository.findTermsByTerm( query );
|
|
Iterator iterator = query.getResults().keySet().iterator();
|
|
if ( iterator.hasNext() )
|
|
{
|
|
setNext( "displayEntry.jsp" );
|
|
getSessionMgr().setQuery( req.getSession( true ), query );
|
|
msg = "There are " + query.getResults().size() + " terms matching " + term.getTerm();
|
|
}
|
|
else
|
|
{
|
|
setNext( "menu.jsp" );
|
|
msg = "There were no terms matching " + term.getTerm();
|
|
}
|
|
}
|
|
req.setAttribute( LexConstants.MESSAGE_REQ_ATTR, msg );
|
|
return getNext();
|
|
}
|
|
catch ( LexComponentException e )
|
|
{
|
|
throw new CommandException( e );
|
|
}
|
|
catch ( LexRepositoryException e )
|
|
{
|
|
throw new CommandException( e );
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* Description of the Method
|
|
*
|
|
*@return Description of the Returned Value
|
|
*@since
|
|
*/
|
|
public HashMap initForwards()
|
|
{
|
|
HashMap map = new HashMap();
|
|
map.put( LexConstants.TERMLABEL_VALUE, "displayEntry.jsp" );
|
|
// map.put( LexConstants.DEFINITIONLABEL_VALUE, "displayEntry.jsp" );
|
|
// map.put( LexConstants.PASSAGELABEL_VALUE, "displayEntry.jsp" );
|
|
return map;
|
|
}
|
|
|
|
|
|
//constructors
|
|
/**
|
|
* Constructor for the FindCommand object
|
|
*
|
|
*@since
|
|
*/
|
|
public FindCommand()
|
|
{
|
|
super();
|
|
setForwards( initForwards() );
|
|
}
|
|
}
|
|
|