|
||||||||||
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 BadLocationException was
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
BadLocationException
was
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
Symbols
describing the next tokenpublic 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
Symbols
describing the previous tokenpublic 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 foundpublic 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 foundpublic 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 foundpublic 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 UNBOUND
condition
- the StopCondition
to check
start
,bound
) for which condition
holds, or NOT_FOUND
if none can be foundpublic 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 UNBOUND
ch
- the char
to search for
ch
in (bound
,position
] that
resides in a SQL partition, or NOT_FOUND
if none can be foundpublic 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 UNBOUND
chars
- an array of char
to search for
position
,bound
)
that resides in a SQL partition, or NOT_FOUND
if none can be foundpublic 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 UNBOUND
condition
- the StopCondition
to check
bound
,start
for which condition
holds, or NOT_FOUND
if none can be foundpublic 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 UNBOUND
ch
- the char
to search for
chars
in (bound
,
position
] that resides in a SQL partition, or NOT_FOUND
if none can be
foundpublic 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 UNBOUND
chars
- 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
otherwisepublic 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 |