com.springsource.bundlor.internal.propertysubstitution
Class VersionExpansionParser
java.lang.Object
com.springsource.bundlor.internal.propertysubstitution.VersionExpansionParser
class VersionExpansionParser
- extends java.lang.Object
Parser for the version expansion format, which looks like "[=.=,+1.+2]". Once parsed the resultant VersionExpander
object can be used to produce the expansion of some maj.min.mic.qual version number. See
VersionExpansionParserTests
for examples of the format and usage.
- Author:
- Andy Clement
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
expansionString
private final java.lang.String expansionString
data
private char[] data
dataLength
private int dataLength
pos
private int pos
tokens
private java.util.List<Token> tokens
currentTokenPointer
private int currentTokenPointer
tokenCount
private int tokenCount
startInclusive
private boolean startInclusive
endInclusive
private boolean endInclusive
currentVersionComponent
private int currentVersionComponent
devouringLowerLimit
private boolean devouringLowerLimit
lowerVersionTransformers
private java.util.List<Transformer> lowerVersionTransformers
upperVersionTransformers
private java.util.List<Transformer> upperVersionTransformers
VersionExpansionParser
private VersionExpansionParser(java.lang.String expansion)
parseVersionExpander
public static VersionExpander parseVersionExpander(java.lang.String expansion)
throws VersionExpansionFormatException
- Entrypoint to the VersionExpansionParser that attempts to parse the expansion string supplied. It will either
return a reusable VersionExpander object that captures the transformation described in the string or throw
VersionExpansionFormatException if there is a problem with parsing.
- Parameters:
expansion
- the expansion formatted string to parse
- Returns:
- a reusable VersionExpander
- Throws:
VersionExpansionFormatException
parseExpansion
private VersionExpander parseExpansion()
throws VersionExpansionFormatException
- Throws:
VersionExpansionFormatException
parse
private void parse()
eatRangeStart
private void eatRangeStart()
string
private java.lang.String string(Token t)
eatRangeEnd
private void eatRangeEnd()
pushIt
private void pushIt(Transformer transformer)
processEquals
private void processEquals()
processNumericModifier
private void processNumericModifier()
processPossibleNumber
private void processPossibleNumber(java.lang.String data,
int position)
processWord
private void processWord()
processNumeric
private void processNumeric()
eatModifier
private void eatModifier()
eatComma
private void eatComma()
maybeEatDot
private boolean maybeEatDot()
lex
private void lex()
isRangeDelimiter
private boolean isRangeDelimiter(char ch)
lexRangeDelimiter
private void lexRangeDelimiter()
lexWord
private void lexWord()
lexNumber
private void lexNumber()
lexPositiveNumber
private void lexPositiveNumber()
lexNegativeNumber
private void lexNegativeNumber()
readDigits
private void readDigits()
lexDot
private void lexDot()
lexEquals
private void lexEquals()
lexComma
private void lexComma()
isSpace
private boolean isSpace(char ch)
isEquals
private boolean isEquals(char ch)
isPlus
private boolean isPlus(char ch)
isMinus
private boolean isMinus(char ch)
isDigit
private boolean isDigit(char ch)
isDot
private boolean isDot(char ch)
isComma
private boolean isComma(char ch)
raiseParseProblem
private void raiseParseProblem(java.lang.String message,
int position)