Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: com/eireneh/bible/control/search/words/PassageLeftParamWord.java


1   
2   package com.eireneh.bible.control.search.words;
3   
4   import java.util.Enumeration;
5   import java.util.Vector;
6   
7   import com.eireneh.bible.passage.*;
8   import com.eireneh.bible.control.search.*;
9   
10  /**
11  * The Search Word for a Word to search for. The default
12  * if no other SearchWords match. 
13  * 
14  * <table border='1' cellPadding='3' cellSpacing='0' width="100%">
15  * <tr><td bgColor='white'class='TableRowColor'><font size='-7'>
16  * Distribution Licence:<br />
17  * Project B is free software; you can redistribute it
18  * and/or modify it under the terms of the GNU General Public License,
19  * version 2 as published by the Free Software Foundation.<br />
20  * This program is distributed in the hope that it will be useful,
21  * but WITHOUT ANY WARRANTY; without even the implied warranty of
22  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
23  * General Public License for more details.<br />
24  * The License is available on the internet
25  * <a href='http://www.gnu.org/copyleft/gpl.html'>here</a>, by writing to
26  * <i>Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
27  * MA 02111-1307, USA</i>, Or locally at the Licence link below.<br />
28  * The copyright to this program is held by it's authors.
29  * </font></td></tr></table>
30  * @see <a href='http://www.eireneh.com/servlets/Web'>Project B Home</a>
31  * @see docs.Licence
32  * @author Joe Walker
33  */
34  public class PassageLeftParamWord implements ParamWord
35  {
36      /**
37      * Get a word for something else to word on.
38      * @param engine The controller that can provide access to the search
39      *               string or a default Bible.
40      * @return The requested text
41      * @exception SearchException If this action is not appropriate
42      */
43      public String getWord(Engine engine) throws SearchException
44      {
45          throw new SearchException("search_left_param");
46      }
47  
48      /**
49      * Get a Passage for something else to word on.
50      * @param engine The controller that can provide access to the search
51      *               string or a default Bible.
52      * @return A Passage relevant to this command
53      * @exception SearchException If this action is not appropriate
54      */
55      public Passage getPassage(Engine engine) throws SearchException
56      {
57          Enumeration en = engine.elements();
58          StringBuffer buff = new StringBuffer();
59  
60          int paren_level = 1;
61          while (true)
62          {
63              if (!engine.elements().hasMoreElements())
64                  throw new SearchException("search_left_brackets");
65  
66              SearchWord word = (SearchWord) en.nextElement();
67  
68              if (word instanceof PassageLeftParamWord)   paren_level++;
69              if (word instanceof PassageRightParamWord)  paren_level--;
70  
71              if (paren_level == 0) break;
72  
73              buff.append(word);
74              buff.append(" ");
75          }
76  
77          try
78          {
79              return PassageFactory.createPassage(buff.toString());
80          }
81          catch (NoSuchVerseException ex)
82          {
83              throw new SearchException("search_illegal_passage", ex, new Object[] { buff.toString() });
84          }
85      }
86  }