- java.lang.Object
-
- io.github.mmm.scanner.CharScannerSyntaxBean
-
- All Implemented Interfaces:
CharScannerSyntax
public class CharScannerSyntaxBean extends Object implements CharScannerSyntax
This is the implementation ofCharScannerSyntaxas Java bean.
The actualchars likeescapeare 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 chargetAltQuoteEnd()This method gets the alternative character used to end a quotation.chargetAltQuoteEscape()This method gets the character used to escape thealt-quote-endcharacter within an quotation opened byalt-quote-start.chargetAltQuoteStart()This method gets the alternative character used to start a quotation that should be terminated by aalt-quote-endcharacter.chargetEntityEnd()This method gets the character used to end an entity.chargetEntityStart()This method gets the character used to start an entity.chargetEscape()This method gets the character used as escape.chargetQuoteEnd()This method gets the character used to end a quotation.chargetQuoteEscape()This method gets the character used to escape thequote-endcharacter within a quotation.chargetQuoteStart()This method gets the character used to start a quotation that should be terminated by aquote-endcharacter.booleanisAltQuoteEscapeLazy()Ifalt-quote-start,alt-quote-endandalt-quote-escapeall point to the same character (which is NOT'\0'), then this method determines ifalt-quotation escapingis lazy.booleanisQuoteEscapeLazy()Ifquote-start,quote-endandquote-escapeall point to the same character (which is NOT'\0'), then this method determines ifquotation escapingis lazy.StringresolveEntity(String entity)This method resolves the givenentity.voidsetAltQuote(char altQuote)This method sets both thealt-quote-startandalt-quote-endcharacter.voidsetAltQuoteEnd(char alternativeQuoteEnd)This method sets thealt-quote-endcharacter.voidsetAltQuoteEscape(char altQuoteEscape)voidsetAltQuoteEscapeLazy(boolean altQuoteEscapeLazy)voidsetAltQuoteStart(char alternativeQuoteStart)voidsetEntityEnd(char entityEnd)voidsetEntityStart(char entityStart)voidsetEscape(char escape)voidsetQuote(char quote)This method sets both thequote-startandquote-endcharacter.voidsetQuoteEnd(char quoteEnd)voidsetQuoteEscape(char quoteEscape)voidsetQuoteEscapeLazy(boolean quoteEscapeLazy)voidsetQuoteStart(char quoteStart)
-
-
-
Method Detail
-
getEscape
public char getEscape()
Description copied from interface:CharScannerSyntaxThis 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:
This allows to encode special characters like aescapeinput output \ a\b\\c ab\c ~ a~b~~~c ab~c stop-character,quote-start,alt-quote-start, as well as theescapeitself.
ATTENTION:
Theescapeis disabled withinquotations.- Specified by:
getEscapein interfaceCharScannerSyntax- Returns:
- the escape character or
'\0'for no escaping. - See Also:
CharScannerSyntax.getEntityStart()
-
setEscape
public void setEscape(char escape)
- Parameters:
escape- is theescapeto set.
-
getQuoteStart
public char getQuoteStart()
Description copied from interface:CharScannerSyntaxThis method gets the character used to start a quotation that should be terminated by aquote-endcharacter. 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:
getQuoteStartin interfaceCharScannerSyntax- Returns:
- the character used to start a quotation or
'\0'to disable.
-
setQuoteStart
public void setQuoteStart(char quoteStart)
- Parameters:
quoteStart- is thequoteStartto set.
-
getQuoteEnd
public char getQuoteEnd()
Description copied from interface:CharScannerSyntaxThis method gets the character used to end a quotation.- Specified by:
getQuoteEndin 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 thequoteEndto set.
-
setQuote
public void setQuote(char quote)
This method sets both thequote-startandquote-endcharacter.- Parameters:
quote- the quote character to set.
-
getQuoteEscape
public char getQuoteEscape()
Description copied from interface:CharScannerSyntaxThis method gets the character used to escape thequote-endcharacter within a quotation. This may be thequote-enditself so a duplicatequote-endrepresents 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-startand only escapes thequote-endcharacter and nothing else so in any other case thequote-escapeis treated as a regular character.
quote-startquote-endquote-escapeinput output ' ' ' a'bc'd abcd ' ' ' a'b''c'd ab'cd ' ' \ a'b\c\'d\\'e'f ab\c'd\'ef - Specified by:
getQuoteEscapein interfaceCharScannerSyntax- Returns:
- the character used to escape the
quote-endcharacter or'\0'to disable.
-
setQuoteEscape
public void setQuoteEscape(char quoteEscape)
- Parameters:
quoteEscape- is thequote-escapeto set.
-
isQuoteEscapeLazy
public boolean isQuoteEscapeLazy()
Description copied from interface:CharScannerSyntaxIfquote-start,quote-endandquote-escapeall point to the same character (which is NOT'\0'), then this method determines ifquotation escapingis 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-startquote-endquote-escapequote-escape-lazyinput 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-lazyisfalseand otherwise just the trailing'a'.- Specified by:
isQuoteEscapeLazyin interfaceCharScannerSyntax- Returns:
trueif quote-escaping is lazy,falseotherwise.
-
setQuoteEscapeLazy
public void setQuoteEscapeLazy(boolean quoteEscapeLazy)
- Parameters:
quoteEscapeLazy- thequote-escape-lazyflag to set
-
getAltQuoteStart
public char getAltQuoteStart()
This method gets the alternative character used to start a quotation that should be terminated by aalt-quote-endcharacter. The text inside the quote is taken as is (without the quote characters).- Specified by:
getAltQuoteStartin 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-startcharacter to set.
-
getAltQuoteEnd
public char getAltQuoteEnd()
This method gets the alternative character used to end a quotation.- Specified by:
getAltQuoteEndin interfaceCharScannerSyntax- Returns:
- the alternative character used to end a quotation.
- See Also:
getAltQuoteStart()
-
setAltQuoteEnd
public void setAltQuoteEnd(char alternativeQuoteEnd)
This method sets thealt-quote-endcharacter.- Parameters:
alternativeQuoteEnd- is thealt-quote-endcharacter.
-
setAltQuote
public void setAltQuote(char altQuote)
This method sets both thealt-quote-startandalt-quote-endcharacter.- Parameters:
altQuote- the alt-quote character to set.
-
getAltQuoteEscape
public char getAltQuoteEscape()
Description copied from interface:CharScannerSyntaxThis method gets the character used to escape thealt-quote-endcharacter within an quotation opened byalt-quote-start.- Specified by:
getAltQuoteEscapein interfaceCharScannerSyntax- Returns:
- the character used to escape the
quote-endcharacter or'\0'to disable. - See Also:
CharScannerSyntax.getQuoteEscape()
-
setAltQuoteEscape
public void setAltQuoteEscape(char altQuoteEscape)
- Parameters:
altQuoteEscape- is thealt-quote-escapeto set.
-
isAltQuoteEscapeLazy
public boolean isAltQuoteEscapeLazy()
Description copied from interface:CharScannerSyntaxIfalt-quote-start,alt-quote-endandalt-quote-escapeall point to the same character (which is NOT'\0'), then this method determines ifalt-quotation escapingis lazy.- Specified by:
isAltQuoteEscapeLazyin interfaceCharScannerSyntax- Returns:
trueif alt-quote-escaping is lazy,falseotherwise.- See Also:
CharScannerSyntax.isQuoteEscapeLazy()
-
setAltQuoteEscapeLazy
public void setAltQuoteEscapeLazy(boolean altQuoteEscapeLazy)
- Parameters:
altQuoteEscapeLazy- thealt-quote-lazyflag to set
-
getEntityStart
public char getEntityStart()
Description copied from interface:CharScannerSyntaxThis method gets the character used to start an entity. An entity is a specific encoded string surrounded withentity-startandentity-end. It will be decoded byCharScannerSyntax.resolveEntity(String).- Specified by:
getEntityStartin interfaceCharScannerSyntax- Returns:
- the character used to start an entity or
'\0'to disable.
-
setEntityStart
public void setEntityStart(char entityStart)
- Parameters:
entityStart- theentity-startto set.
-
getEntityEnd
public char getEntityEnd()
Description copied from interface:CharScannerSyntaxThis method gets the character used to end an entity.- Specified by:
getEntityEndin interfaceCharScannerSyntax- Returns:
- the character used to end an entity.
- See Also:
CharScannerSyntax.getEntityStart()
-
setEntityEnd
public void setEntityEnd(char entityEnd)
- Parameters:
entityEnd- theentity-endto set.
-
resolveEntity
public String resolveEntity(String entity)
This method resolves the givenentity.
E.g. ifentity-startis'&'andCharScannerSyntax.getEntityEnd()is';'then if the string"<"is scanned, this method is called with"lt"asentityargument and may return"<". ATTENTION:
You need to override this method if you want touseentities.- Specified by:
resolveEntityin interfaceCharScannerSyntax- Parameters:
entity- is the entity string that was found surrounded byentity-startandentity-endexcluding these characters.- Returns:
- the decoded entity.
-
-