Package com.jgoodies.forms.layout
Class FormSpecParser
- java.lang.Object
-
- com.jgoodies.forms.layout.FormSpecParser
-
public final class FormSpecParser extends java.lang.Object
Parses encoded column and row specifications. Returns ColumnSpec or RowSpec arrays if successful, and aims to provide useful information in case of a syntax error.- Version:
- $Revision: 1.12 $
- See Also:
ColumnSpec
,RowSpec
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
FormSpecParser.FormLayoutParseException
Used by the parser for encoded column and row specifications.(package private) static class
FormSpecParser.Multiplier
Internal helper class that is returned bymultiplier(String, int)
.
-
Field Summary
Fields Modifier and Type Field Description private static java.util.regex.Pattern
DIGIT_PATTERN
private LayoutMap
layoutMap
private static java.util.regex.Pattern
MULTIPLIER_PREFIX_PATTERN
private java.lang.String
source
-
Constructor Summary
Constructors Modifier Constructor Description private
FormSpecParser(java.lang.String source, java.lang.String description, LayoutMap layoutMap, boolean horizontal)
Constructs a parser for the given encoded column/row specification, the given LayoutMap, and orientation.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
addSpec(java.util.List<java.lang.String> encodedSpecs, java.lang.String expression, int offset)
private void
fail(int index, java.lang.NumberFormatException cause)
private void
fail(int index, java.lang.String description)
static void
fail(java.lang.String source, int index, java.lang.String description)
private static java.lang.String
message(java.lang.String source, int index, java.lang.String description)
private FormSpecParser.Multiplier
multiplier(java.lang.String expression, int offset)
private ColumnSpec[]
parseColumnSpecs()
(package private) static ColumnSpec[]
parseColumnSpecs(java.lang.String encodedColumnSpecs, LayoutMap layoutMap)
private RowSpec[]
parseRowSpecs()
(package private) static RowSpec[]
parseRowSpecs(java.lang.String encodedRowSpecs, LayoutMap layoutMap)
private java.util.List<java.lang.String>
split(java.lang.String expression, int offset)
-
-
-
Field Detail
-
MULTIPLIER_PREFIX_PATTERN
private static final java.util.regex.Pattern MULTIPLIER_PREFIX_PATTERN
-
DIGIT_PATTERN
private static final java.util.regex.Pattern DIGIT_PATTERN
-
source
private final java.lang.String source
-
layoutMap
private final LayoutMap layoutMap
-
-
Constructor Detail
-
FormSpecParser
private FormSpecParser(java.lang.String source, java.lang.String description, LayoutMap layoutMap, boolean horizontal)
Constructs a parser for the given encoded column/row specification, the given LayoutMap, and orientation.- Parameters:
source
- the raw encoded column or row specification as provided by the userdescription
- describes the source, e.g. "column specification"layoutMap
- maps layout variable names to ColumnSpec and RowSpec objectshorizontal
-true
for columns,false
for rows- Throws:
java.lang.NullPointerException
- ifsource
orlayoutMap
isnull
-
-
Method Detail
-
parseColumnSpecs
static ColumnSpec[] parseColumnSpecs(java.lang.String encodedColumnSpecs, LayoutMap layoutMap)
-
parseRowSpecs
static RowSpec[] parseRowSpecs(java.lang.String encodedRowSpecs, LayoutMap layoutMap)
-
parseColumnSpecs
private ColumnSpec[] parseColumnSpecs()
-
parseRowSpecs
private RowSpec[] parseRowSpecs()
-
split
private java.util.List<java.lang.String> split(java.lang.String expression, int offset)
-
addSpec
private void addSpec(java.util.List<java.lang.String> encodedSpecs, java.lang.String expression, int offset)
-
multiplier
private FormSpecParser.Multiplier multiplier(java.lang.String expression, int offset)
-
fail
public static void fail(java.lang.String source, int index, java.lang.String description)
-
fail
private void fail(int index, java.lang.String description)
-
fail
private void fail(int index, java.lang.NumberFormatException cause)
-
message
private static java.lang.String message(java.lang.String source, int index, java.lang.String description)
-
-