- java.lang.Object
-
- io.github.mmm.scanner.CharScannerSyntaxBean
-
- All Implemented Interfaces:
CharScannerSyntax
public class CharScannerSyntaxBean extends Object implements CharScannerSyntax
This is the implementation ofCharScannerSyntax
as Java bean.
The actualchar
s likeescape
are realized as simple bean-properties and initialized with'\0'
so they are disabled by default.
-
-
Constructor Summary
Constructors Constructor Description CharScannerSyntaxBean()
The constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description char
getAltQuoteEnd()
This method gets the alternative character used to end a quotation.char
getAltQuoteEscape()
This method gets the character used to escape thealt-quote-end
character within an quotation opened byalt-quote-start
.char
getAltQuoteStart()
This method gets the alternative character used to start a quotation that should be terminated by aalt-quote-end
character.char
getEntityEnd()
This method gets the character used to end an entity.char
getEntityStart()
This method gets the character used to start an entity.char
getEscape()
This method gets the character used as escape.char
getQuoteEnd()
This method gets the character used to end a quotation.char
getQuoteEscape()
This method gets the character used to escape thequote-end
character within a quotation.char
getQuoteStart()
This method gets the character used to start a quotation that should be terminated by aquote-end
character.boolean
isAltQuoteEscapeLazy()
Ifalt-quote-start
,alt-quote-end
andalt-quote-escape
all point to the same character (which is NOT'\0'
), then this method determines ifalt-quotation escaping
is lazy.boolean
isQuoteEscapeLazy()
Ifquote-start
,quote-end
andquote-escape
all point to the same character (which is NOT'\0'
), then this method determines ifquotation escaping
is lazy.String
resolveEntity(String entity)
This method resolves the givenentity
.void
setAltQuote(char altQuote)
This method sets both thealt-quote-start
andalt-quote-end
character.void
setAltQuoteEnd(char alternativeQuoteEnd)
This method sets thealt-quote-end
character.void
setAltQuoteEscape(char altQuoteEscape)
void
setAltQuoteEscapeLazy(boolean altQuoteEscapeLazy)
void
setAltQuoteStart(char alternativeQuoteStart)
void
setEntityEnd(char entityEnd)
void
setEntityStart(char entityStart)
void
setEscape(char escape)
void
setQuote(char quote)
This method sets both thequote-start
andquote-end
character.void
setQuoteEnd(char quoteEnd)
void
setQuoteEscape(char quoteEscape)
void
setQuoteEscapeLazy(boolean quoteEscapeLazy)
void
setQuoteStart(char quoteStart)
-
-
-
Method Detail
-
getEscape
public char getEscape()
Description copied from interface:CharScannerSyntax
This method gets the character used as escape. It is used to mark special characters likeCharScannerSyntax.getQuoteStart()
to allow these characters also in the payload. The escape itself is removed on decoding while the next character is taken as is without any special interpretation.
The most common escape character is the backslash (\
).
Here are some examples for decoding:escape
input output \ a\b\\c ab\c ~ a~b~~~c ab~c stop-character
,quote-start
,alt-quote-start
, as well as theescape
itself.
ATTENTION:
Theescape
is disabled withinquotations
.- Specified by:
getEscape
in interfaceCharScannerSyntax
- Returns:
- the escape character or
'\0'
for no escaping. - See Also:
CharScannerSyntax.getEntityStart()
-
setEscape
public void setEscape(char escape)
- Parameters:
escape
- is theescape
to set.
-
getQuoteStart
public char getQuoteStart()
Description copied from interface:CharScannerSyntax
This method gets the character used to start a quotation that should be terminated by aquote-end
character. The text inside the quote is taken as is (without the quote characters).
Common examples for quote characters are the single quotes ('
) and double quotes ("
).- Specified by:
getQuoteStart
in interfaceCharScannerSyntax
- Returns:
- the character used to start a quotation or
'\0'
to disable.
-
setQuoteStart
public void setQuoteStart(char quoteStart)
- Parameters:
quoteStart
- is thequoteStart
to set.
-
getQuoteEnd
public char getQuoteEnd()
Description copied from interface:CharScannerSyntax
This method gets the character used to end a quotation.- Specified by:
getQuoteEnd
in interfaceCharScannerSyntax
- Returns:
- the character used to end a quotation or
'\0'
to disable. - See Also:
CharScannerSyntax.getQuoteStart()
-
setQuoteEnd
public void setQuoteEnd(char quoteEnd)
- Parameters:
quoteEnd
- is thequoteEnd
to set.
-
setQuote
public void setQuote(char quote)
This method sets both thequote-start
andquote-end
character.- Parameters:
quote
- the quote character to set.
-
getQuoteEscape
public char getQuoteEscape()
Description copied from interface:CharScannerSyntax
This method gets the character used to escape thequote-end
character within a quotation. This may be thequote-end
itself so a duplicatequote-end
represents a single occurrence of that character within a quotation. Otherwise the escape may be any other character.
Please note that this escaping is only active within a quotation opened byquote-start
and only escapes thequote-end
character and nothing else so in any other case thequote-escape
is treated as a regular character.
quote-start
quote-end
quote-escape
input output ' ' ' a'bc'd abcd ' ' ' a'b''c'd ab'cd ' ' \ a'b\c\'d\\'e'f ab\c'd\'ef - Specified by:
getQuoteEscape
in interfaceCharScannerSyntax
- Returns:
- the character used to escape the
quote-end
character or'\0'
to disable.
-
setQuoteEscape
public void setQuoteEscape(char quoteEscape)
- Parameters:
quoteEscape
- is thequote-escape
to set.
-
isQuoteEscapeLazy
public boolean isQuoteEscapeLazy()
Description copied from interface:CharScannerSyntax
Ifquote-start
,quote-end
andquote-escape
all point to the same character (which is NOT'\0'
), then this method determines ifquotation escaping
is lazy. This means that outside a quotation a double occurrence of the quote character is NOT treated as quotation but as escaped quote character. Otherwise if NOT lazy, the double quote character is treated as quotation representing the empty sequence.
Here are some examples:quote-start
quote-end
quote-escape
quote-escape-lazy
input output ' ' ' true '' ' ' ' ' false '' ' ' ' true '''' '' ' ' ' false '''' ' ' ' ' true '''a' 'a ' ' ' false '''a' 'a
Please note that for'''a'
the complete sequence is treated as quote ifquote-escape-lazy
isfalse
and otherwise just the trailing'a'
.- Specified by:
isQuoteEscapeLazy
in interfaceCharScannerSyntax
- Returns:
true
if quote-escaping is lazy,false
otherwise.
-
setQuoteEscapeLazy
public void setQuoteEscapeLazy(boolean quoteEscapeLazy)
- Parameters:
quoteEscapeLazy
- thequote-escape-lazy
flag to set
-
getAltQuoteStart
public char getAltQuoteStart()
This method gets the alternative character used to start a quotation that should be terminated by aalt-quote-end
character. The text inside the quote is taken as is (without the quote characters).- Specified by:
getAltQuoteStart
in interfaceCharScannerSyntax
- Returns:
- the alternative character used to start a quotation or
'\0'
for no quotation. - See Also:
getQuoteStart()
-
setAltQuoteStart
public void setAltQuoteStart(char alternativeQuoteStart)
- Parameters:
alternativeQuoteStart
- is thealt-quote-start
character to set.
-
getAltQuoteEnd
public char getAltQuoteEnd()
This method gets the alternative character used to end a quotation.- Specified by:
getAltQuoteEnd
in interfaceCharScannerSyntax
- Returns:
- the alternative character used to end a quotation.
- See Also:
getAltQuoteStart()
-
setAltQuoteEnd
public void setAltQuoteEnd(char alternativeQuoteEnd)
This method sets thealt-quote-end
character.- Parameters:
alternativeQuoteEnd
- is thealt-quote-end
character.
-
setAltQuote
public void setAltQuote(char altQuote)
This method sets both thealt-quote-start
andalt-quote-end
character.- Parameters:
altQuote
- the alt-quote character to set.
-
getAltQuoteEscape
public char getAltQuoteEscape()
Description copied from interface:CharScannerSyntax
This method gets the character used to escape thealt-quote-end
character within an quotation opened byalt-quote-start
.- Specified by:
getAltQuoteEscape
in interfaceCharScannerSyntax
- Returns:
- the character used to escape the
quote-end
character or'\0'
to disable. - See Also:
CharScannerSyntax.getQuoteEscape()
-
setAltQuoteEscape
public void setAltQuoteEscape(char altQuoteEscape)
- Parameters:
altQuoteEscape
- is thealt-quote-escape
to set.
-
isAltQuoteEscapeLazy
public boolean isAltQuoteEscapeLazy()
Description copied from interface:CharScannerSyntax
Ifalt-quote-start
,alt-quote-end
andalt-quote-escape
all point to the same character (which is NOT'\0'
), then this method determines ifalt-quotation escaping
is lazy.- Specified by:
isAltQuoteEscapeLazy
in interfaceCharScannerSyntax
- Returns:
true
if alt-quote-escaping is lazy,false
otherwise.- See Also:
CharScannerSyntax.isQuoteEscapeLazy()
-
setAltQuoteEscapeLazy
public void setAltQuoteEscapeLazy(boolean altQuoteEscapeLazy)
- Parameters:
altQuoteEscapeLazy
- thealt-quote-lazy
flag to set
-
getEntityStart
public char getEntityStart()
Description copied from interface:CharScannerSyntax
This method gets the character used to start an entity. An entity is a specific encoded string surrounded withentity-start
andentity-end
. It will be decoded byCharScannerSyntax.resolveEntity(String)
.- Specified by:
getEntityStart
in interfaceCharScannerSyntax
- Returns:
- the character used to start an entity or
'\0'
to disable.
-
setEntityStart
public void setEntityStart(char entityStart)
- Parameters:
entityStart
- theentity-start
to set.
-
getEntityEnd
public char getEntityEnd()
Description copied from interface:CharScannerSyntax
This method gets the character used to end an entity.- Specified by:
getEntityEnd
in interfaceCharScannerSyntax
- Returns:
- the character used to end an entity.
- See Also:
CharScannerSyntax.getEntityStart()
-
setEntityEnd
public void setEntityEnd(char entityEnd)
- Parameters:
entityEnd
- theentity-end
to set.
-
resolveEntity
public String resolveEntity(String entity)
This method resolves the givenentity
.
E.g. ifentity-start
is'&'
andCharScannerSyntax.getEntityEnd()
is';'
then if the string"<"
is scanned, this method is called with"lt"
asentity
argument and may return"<"
. ATTENTION:
You need to override this method if you want touse
entities.- Specified by:
resolveEntity
in interfaceCharScannerSyntax
- Parameters:
entity
- is the entity string that was found surrounded byentity-start
andentity-end
excluding these characters.- Returns:
- the decoded entity.
-
-