01: /*
02: * Sun Public License Notice
03: *
04: * The contents of this file are subject to the Sun Public License
05: * Version 1.0 (the "License"). You may not use this file except in
06: * compliance with the License. A copy of the License is available at
07: * http://www.sun.com/
08: *
09: * The Original Code is NetBeans. The Initial Developer of the Original
10: * Code is Sun Microsystems, Inc. Portions Copyright 1997-2000 Sun
11: * Microsystems, Inc. All Rights Reserved.
12: */
13:
14: package org.netbeans.editor;
15:
16: /**
17: * Advanced finder that can adjust the start and limit position of the search.
18: * The finder can be used in the <tt>BaseDocument.find()</tt> which calls its
19: * adjust-methods automatically. The order of the methods called for the search
20: * is <br>
21: * 1. <tt>adjustStartPos()</tt> is called<br>
22: * 2. <tt>adjustStartPos()</tt> is called<br>
23: * 3. <tt>reset()</tt> is called<br>
24: * If the search is void i.e. <tt>doc.find(finder, pos, pos)</tt> is called,
25: * no adjust-methods are called, only the <tt>reset()</tt> is called. For
26: * backward search the start-position is higher than the limit-position. The
27: * relation <tt>startPos < endPos</tt> defines whether the search will be
28: * forward or backward. The adjust-methods could in fact revert this relation
29: * turning the forward search into the backward one and vice versa. This is not
30: * allowed. If that happens the search is considered void. The adjust-methods
31: * must NOT use the shortcut -1 for the end of document.
32: *
33: * @author Miloslav Metelka
34: * @version 1.00
35: */
36:
37: public interface AdjustFinder extends Finder {
38:
39: /**
40: * Adjust start position of the search to be either the same or lower. This
41: * method can be used for example to scan the whole line by the reg-exp
42: * finder even if the original start position is not at the begining of the
43: * line. Although it's not specifically checked the finder should NOT in any
44: * case return the position that is lower than the original
45: *
46: * @param doc
47: * document to search on
48: * @param startPos
49: * start position originally requested in
50: * <tt>BaseDocument.find()</tt>.
51: * @return possibly modified start position. The returned position must be
52: * the same or lower than the original start position for forward
53: * search and the same or high.
54: */
55: public int adjustStartPos(BaseDocument doc, int startPos);
56:
57: /**
58: * Adjust the limit position of the search (it's the position where the
59: * search will end) to be either the same or greater.
60: *
61: * @param doc
62: * document to search on
63: * @param limitPos
64: * limit position originally requested in
65: * <tt>BaseDocument.find()</tt>
66: * @return possibly modified limit position. The returned position must be
67: * the same or greater than the original limit position.
68: */
69: public int adjustLimitPos(BaseDocument doc, int limitPos);
70:
71: }
|