2
2
package org.crosswire.jsword.control.search;
4
import java.util.Enumeration;
4
import java.util.Iterator;
5
5
import java.util.Vector;
7
7
import org.crosswire.jsword.passage.Passage;
10
* The Search Word for a Word to search for. The default
11
* if no other SearchWords match.
13
* <table border='1' cellPadding='3' cellSpacing='0' width="100%">
14
* <tr><td bgColor='white'class='TableRowColor'><font size='-7'>
15
* Distribution Licence:<br />
16
* Project B is free software; you can redistribute it
17
* and/or modify it under the terms of the GNU General Public License,
18
* version 2 as published by the Free Software Foundation.<br />
19
* This program is distributed in the hope that it will be useful,
20
* but WITHOUT ANY WARRANTY; without even the implied warranty of
21
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22
* General Public License for more details.<br />
23
* The License is available on the internet
24
* <a href='http://www.gnu.org/copyleft/gpl.html'>here</a>, by writing to
25
* <i>Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
26
* MA 02111-1307, USA</i>, Or locally at the Licence link below.<br />
27
* The copyright to this program is held by it's authors.
28
* </font></td></tr></table>
29
* @see <a href='http://www.eireneh.com/servlets/Web'>Project B Home</a>
30
* @see <{docs.Licence}>
10
* The Search Word for a Word to search for. The default
11
* if no other SearchWords match.
13
* <p><table border='1' cellPadding='3' cellSpacing='0'>
14
* <tr><td bgColor='white' class='TableRowColor'><font size='-7'>
16
* Distribution Licence:<br />
17
* JSword 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>, or by writing to:
26
* Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
27
* MA 02111-1307, USA<br />
28
* The copyright to this program is held by it's authors.
29
* </font></td></tr></table>
31
* @author Joe Walker [joe at eireneh dot com]
33
34
public class SubLeftParamWord implements ParamWord
36
* Get a word for something else to word on.
37
* @param engine The controller that can provide access to the search
38
* string or a default Bible.
39
* @return The requested text
40
* @exception SearchException If this action is not appropriate
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");
48
* Get a Passage for something else to word on.
49
* @param engine The controller that can provide access to the search
50
* string or a default Bible.
51
* @return A Passage relevant to this command
52
* @exception SearchException If this action is not appropriate
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
Enumeration en = engine.elements();
57
Iterator it = engine.iterator();
57
58
Vector output = new Vector();
59
60
int paren_level = 1;
62
if (!engine.elements().hasMoreElements())
63
if (!engine.iterator().hasNext())
63
64
throw new SearchException("search_left_brackets");
65
SearchWord word = (SearchWord) en.nextElement();
66
SearchWord word = (SearchWord) it.next();
67
68
if (word instanceof SubLeftParamWord) paren_level++;
68
69
if (word instanceof SubRightParamWord) paren_level--;