|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.eclipse.datatools.sqltools.sqleditor.internal.indent.SQLHeuristicScanner
public class SQLHeuristicScanner
Utility methods for heuristic based SQL manipulations in an incomplete SQL source file.
An instance holds some internal position in the document and is therefore not threadsafe.
| Field Summary | |
|---|---|
static int |
NOT_FOUND
Returned by all methods when the requested position could not be found, or if a BadLocationExceptionwas
thrown while scanning. |
static int |
UNBOUND
Special bound parameter that means either -1 (backward scanning) or fDocument.getLength() (forward
scanning). |
| Fields inherited from interface org.eclipse.datatools.sqltools.sqleditor.internal.indent.Symbols |
|---|
begin, BEGIN, beginTrail, BEGINTrail, Tokenbegin, TokenBEGIN, Tokenend, TokenEND, TokenEOF, TokenIDENT, TokenOTHER |
| Constructor Summary | |
|---|---|
SQLHeuristicScanner(org.eclipse.jface.text.IDocument document)
Calls this(document, ISQLPartitions.SQL_PARTITIONING, IDocument.DEFAULT_CONTENT_TYPE). |
|
SQLHeuristicScanner(org.eclipse.jface.text.IDocument document,
java.lang.String partitioning,
java.lang.String partition)
Creates a new instance. |
|
| Method Summary | |
|---|---|
int |
findClosingPeer(int start,
int openingPeer,
int closingPeer)
Returns the position of the closing peer token (forward search). |
int |
findNonWhitespaceBackward(int position,
int bound)
Finds the highest position in fDocument such that the position is <= position
and > bound and Character.isWhitespace(fDocument.getChar(pos)) evaluates to
false and the position is in the default partition. |
int |
findNonWhitespaceForward(int position,
int bound)
Finds the smallest position in fDocument such that the position is >= position
and < bound and Character.isWhitespace(fDocument.getChar(pos)) evaluates to
false and the position is in the default partition. |
int |
findNonWhitespaceForwardInAnyPartition(int position,
int bound)
Finds the smallest position in fDocument such that the position is >= position
and < bound and Character.isWhitespace(fDocument.getChar(pos)) evaluates to
false. |
int |
findOpeningPeer(int start,
int openingPeer,
int closingPeer)
Returns the position of the opening peer token (backward search). |
int |
getPosition()
Returns the most recent internal scan position. |
boolean |
isDefaultPartition(int position)
Checks whether position resides in a default (SQL) partition of _document. |
boolean |
isSameToken(int firstToken,
int secondToken)
|
int |
nextToken(int start,
int bound)
Returns the next token in forward direction, starting at start, and not extending further than
bound. |
int |
previousToken(int start,
int bound)
Returns the next token in backward direction, starting at start, and not extending further than
bound. |
int |
scanBackward(int position,
int bound,
char ch)
Finds the highest position in fDocument such that the position is <= position
and > bound and fDocument.getChar(position) == ch evaluates to true
for at least one ch in chars and the position is in the default partition. |
int |
scanBackward(int position,
int bound,
char[] chars)
Finds the highest position in _document such that the position is <= position
and > bound and _document.getChar(position) == ch evaluates to true
for at least one ch in chars and the position is in the default partition. |
int |
scanBackward(int start,
int bound,
StopCondition condition)
Finds the highest position p in fDocument such that bound <
p <= start and condition.stop(fDocument.getChar(p), p) evaluates
to true. |
int |
scanForward(int position,
int bound,
char ch)
Finds the lowest position in fDocument such that the position is >= position and
< bound and fDocument.getChar(position) == ch evaluates to true
and the position is in the default partition. |
int |
scanForward(int position,
int bound,
char[] chars)
Finds the lowest position in fDocument such that the position is >= position and
< bound and fDocument.getChar(position) == ch evaluates to true
for at least one ch in chars and the position is in the default partition. |
int |
scanForward(int start,
int bound,
StopCondition condition)
Finds the lowest position p in fDocument such that start <= p
< bound and condition.stop(fDocument.getChar(p), p) evaluates to
true. |
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final int NOT_FOUND
BadLocationExceptionwas
thrown while scanning.
public static final int UNBOUND
fDocument.getLength() (forward
scanning).
| Constructor Detail |
|---|
public SQLHeuristicScanner(org.eclipse.jface.text.IDocument document,
java.lang.String partitioning,
java.lang.String partition)
document - the document to scanpartitioning - the partitioning to use for scanningpartition - the partition to scan inpublic SQLHeuristicScanner(org.eclipse.jface.text.IDocument document)
this(document, ISQLPartitions.SQL_PARTITIONING, IDocument.DEFAULT_CONTENT_TYPE).
document - the document to scan.| Method Detail |
|---|
public int getPosition()
public int nextToken(int start,
int bound)
start, and not extending further than
bound. The return value is one of the constants defined in Symbols. After a call,
getPosition()will return the position just after the scanned token (i.e. the next position that will be
scanned).
start - the first character position in the document to considerbound - the first position not to consider any more
Symbolsdescribing the next token
public int previousToken(int start,
int bound)
start, and not extending further than
bound. The return value is one of the constants defined in Symbols. After a call,
getPosition()will return the position just before the scanned token starts (i.e. the next position that
will be scanned).
start - the first character position in the document to considerbound - the first position not to consider any more
Symbolsdescribing the previous token
public int findNonWhitespaceForward(int position,
int bound)
fDocument such that the position is >= position
and < bound and Character.isWhitespace(fDocument.getChar(pos)) evaluates to
false and the position is in the default partition.
position - the first character position in fDocument to be consideredbound - the first position in fDocument to not consider any more, with bound
> position, or UNBOUND
position,bound)
that resides in a SQL partition, or NOT_FOUND if none can be found
public int findNonWhitespaceForwardInAnyPartition(int position,
int bound)
fDocument such that the position is >= position
and < bound and Character.isWhitespace(fDocument.getChar(pos)) evaluates to
false.
position - the first character position in fDocument to be consideredbound - the first position in fDocument to not consider any more, with bound
> position, or UNBOUND
position,bound),
or NOT_FOUND if none can be found
public int findNonWhitespaceBackward(int position,
int bound)
fDocument such that the position is <= position
and > bound and Character.isWhitespace(fDocument.getChar(pos)) evaluates to
false and the position is in the default partition.
position - the first character position in fDocument to be consideredbound - the first position in fDocument to not consider any more, with bound
< position, or UNBOUND
bound,position]
that resides in a SQL partition, or NOT_FOUND if none can be found
public int scanForward(int start,
int bound,
StopCondition condition)
p in fDocument such that start <= p
< bound and condition.stop(fDocument.getChar(p), p) evaluates to
true.
start - the first character position in fDocument to be consideredbound - the first position in fDocument to not consider any more, with bound
> start, or UNBOUNDcondition - the StopCondition to check
start,bound) for which condition
holds, or NOT_FOUND if none can be found
public int scanForward(int position,
int bound,
char ch)
fDocument such that the position is >= position and
< bound and fDocument.getChar(position) == ch evaluates to true
and the position is in the default partition.
position - the first character position in fDocument to be consideredbound - the first position in fDocument to not consider any more, with bound
> position, or UNBOUNDch - the char to search for
ch in (bound,position] that
resides in a SQL partition, or NOT_FOUND if none can be found
public int scanForward(int position,
int bound,
char[] chars)
fDocument such that the position is >= position and
< bound and fDocument.getChar(position) == ch evaluates to true
for at least one ch in chars and the position is in the default partition.
position - the first character position in fDocument to be consideredbound - the first position in fDocument to not consider any more, with bound
> position, or UNBOUNDchars - an array of char to search for
position,bound)
that resides in a SQL partition, or NOT_FOUND if none can be found
public int scanBackward(int start,
int bound,
StopCondition condition)
p in fDocument such that bound <
p <= start and condition.stop(fDocument.getChar(p), p) evaluates
to true.
start - the first character position in fDocument to be consideredbound - the first position in fDocument to not consider any more, with bound
< start, or UNBOUNDcondition - the StopCondition to check
bound,start for which condition
holds, or NOT_FOUND if none can be found
public int scanBackward(int position,
int bound,
char ch)
fDocument such that the position is <= position
and > bound and fDocument.getChar(position) == ch evaluates to true
for at least one ch in chars and the position is in the default partition.
position - the first character position in fDocument to be consideredbound - the first position in fDocument to not consider any more, with bound
< position, or UNBOUNDch - the char to search for
chars in (bound,
position] that resides in a SQL partition, or NOT_FOUND if none can be
found
public int scanBackward(int position,
int bound,
char[] chars)
_document such that the position is <= position
and > bound and _document.getChar(position) == ch evaluates to true
for at least one ch in chars and the position is in the default partition.
position - the first character position in _document to be consideredbound - the first position in _document to not consider any more, with bound
< position, or UNBOUNDchars - an array of char to search for
chars in (bound,
position] that resides in a SQL partition, or NOT_FOUND if none can be
foundpublic boolean isDefaultPartition(int position)
position resides in a default (SQL) partition of _document.
position - the position to be checked
true if position is in the default partition of _document,
false otherwise
public int findOpeningPeer(int start,
int openingPeer,
int closingPeer)
Note that start must not point to the closing peer, but to the first token being searched.
start - the start positionopeningPeer - the opening peer token (e.g. 'begin')closingPeer - the closing peer token (e.g. 'end')
NOT_FOUND
public int findClosingPeer(int start,
int openingPeer,
int closingPeer)
Note that start must not point to the opening peer, but to the first
token being searched.
start - the start positionopeningPeer - the opening peer character (e.g. 'begin')closingPeer - the closing peer character (e.g. 'end')
NOT_FOUND
public boolean isSameToken(int firstToken,
int secondToken)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||