Object
Symbols
- All Implemented Interfaces:
Serializable
,Cloneable
,Localized
The set of symbols to use for Well Known Text (WKT) parsing and formatting.
The two constants defined in this class, namely
Users can create their own
SQUARE_BRACKETS
and CURLY_BRACKETS
,
define the symbols for ISO 19162 compliant WKT formatting. Their properties are:
WKT aspect | Standard value | Comment |
---|---|---|
Locale for number format: | Locale.ROOT |
|
Bracket symbols: | [ …] or ( …) |
Note: the […] brackets are common in referencing WKT,
while the (…) brackets are common in geometry WKT. |
Quote symbols: | " …" |
Note: Apache SIS accepts also “…” quotes
for more readable String literals in Java code, but this is non-standard. |
Sequence symbols: | { …} |
|
Separator: | , |
Symbols
instance for parsing or formatting a WKT with different symbols.- Since:
- 0.4
- See Also:
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionclone()
Returns a clone of thisSymbols
.boolean
containsElement
(CharSequence wkt, String element) Returnstrue
if the given WKT contains at least one instance of the given element.boolean
Compares thisSymbols
with the given object for equality.final int
Returns the character used for closing a sequence of values.final int
getClosingBracket
(int index) Returns the closing bracket character at the given index.final int
getClosingQuote
(int index) Returns the closing quote character at the given index.static Symbols
Returns the default set of symbols.final Locale
Returns the locale for formatting dates and numbers.final int
Returns the number of paired brackets.final int
Returns the number of paired quotes.final int
getOpeningBracket
(int index) Returns the opening bracket character at the given index.final int
getOpeningQuote
(int index) Returns the opening quote character at the given index.final int
Returns the character used for opening a sequence of values.final String
Returns the string used as a separator in a list of values.int
Returns a hash code value for this object.void
setLocale
(Locale locale) Sets the locale of decimal format symbols or other symbols.void
setPairedBrackets
(String preferred, String... alternatives) Sets the opening and closing brackets to the given pairs.void
setPairedQuotes
(String preferred, String... alternatives) Sets the opening and closing quotes to the given pairs.void
setSeparator
(String separator) Sets the string to use as a separator in a list of values.void
setSequenceBrackets
(int openSequence, int closeSequence) Sets the characters used for opening and closing a sequence of values.
-
Field Details
-
SQUARE_BRACKETS
A set of symbols with values between square brackets, likeDATUM["WGS84"]
. This instance defines:Locale.ROOT
for decimal format symbols.- Square brackets by default, as in
DATUM["WGS84"]
, but accepting also curly brackets as inDATUM("WGS84")
. Both are legal WKT. - English quotation mark (
'"'
) by default, but accepting also “…” quotes for more readableString
constants in Java code. - Coma separator followed by a space (
", "
).
-
CURLY_BRACKETS
A set of symbols with values between parentheses, likeDATUM("WGS84")
. This instance is identical toSQUARE_BRACKETS
except that the default brackets are the curly ones instead of the square ones (but both are still accepted at parsing time).This format is rare with referencing objects but common with geometry objects.
-
-
Constructor Details
-
Symbols
Creates a new set of WKT symbols initialized to a copy of the given symbols.- Parameters:
symbols
- the symbols to copy.
-
-
Method Details
-
getDefault
Returns the default set of symbols. This is currently set toSQUARE_BRACKETS
.- Returns:
- the default set of symbols.
-
getLocale
Returns the locale for formatting dates and numbers. The default value isLocale.ROOT
.Relationship between
TheSymbols
locale andWKTFormat
localeWKTFormat.getLocale(Locale.DISPLAY)
property specifies the language to use when formattingInternationalString
instances and can be set to any value. On the contrary, theLocale
property of thisSymbols
class controls the decimal format symbols and is very rarely set to another locale thanLocale.ROOT
.- Specified by:
getLocale
in interfaceLocalized
- Returns:
- the locale for dates and numbers.
- See Also:
-
setLocale
Sets the locale of decimal format symbols or other symbols. Note that any non-English locale is likely to produce WKT that do not conform to ISO 19162. Such WKT can be used for human reading, but not for data export.- Parameters:
locale
- the new symbols locale.- Throws:
UnsupportedOperationException
- if thisSymbols
instance is immutable.
-
getNumPairedBrackets
public final int getNumPairedBrackets()Returns the number of paired brackets. For example if the WKT parser accepts both the[…]
and(…)
bracket pairs, then this method returns 2.- Returns:
- the number of bracket pairs.
- See Also:
-
getOpeningBracket
public final int getOpeningBracket(int index) Returns the opening bracket character at the given index. Index 0 stands for the default bracket used at formatting time. All other index are for optional brackets accepted at parsing time.- Parameters:
index
- index of the opening bracket to get, from 0 togetNumPairedBrackets()
exclusive.- Returns:
- the opening bracket at the given index, as a Unicode code point.
- Throws:
IndexOutOfBoundsException
- if the given index is out of bounds.
-
getClosingBracket
public final int getClosingBracket(int index) Returns the closing bracket character at the given index. Index 0 stands for the default bracket used at formatting time. All other index are for optional brackets accepted at parsing time.- Parameters:
index
- index of the closing bracket to get, from 0 togetNumPairedBrackets()
exclusive.- Returns:
- the closing bracket at the given index, as a Unicode code point.
- Throws:
IndexOutOfBoundsException
- if the given index is out of bounds.
-
setPairedBrackets
Sets the opening and closing brackets to the given pairs. Each string shall contain exactly two code points (usually two characters). The first code point is taken as the opening bracket, and the second code point as the closing bracket.Example
The following code will instruct the WKT formatter to use the (…) pair of brackets at formatting time, but still accept the more common […] pair of brackets at parsing time:symbols.setPairedBrackets("()", "[]");
- Parameters:
preferred
- the preferred pair of opening and closing quotes, used at formatting time.alternatives
- alternative pairs of opening and closing quotes accepted at parsing time.- Throws:
UnsupportedOperationException
- if thisSymbols
instance is immutable.
-
getNumPairedQuotes
public final int getNumPairedQuotes()Returns the number of paired quotes. For example if the WKT parser accepts both the"…"
and“…”
quote pairs, then this method returns 2.- Returns:
- the number of quote pairs.
- See Also:
-
getOpeningQuote
public final int getOpeningQuote(int index) Returns the opening quote character at the given index. Index 0 stands for the default quote used at formatting time, which is usually'"'
. All other index are for optional quotes accepted at parsing time.- Parameters:
index
- index of the opening quote to get, from 0 togetNumPairedQuotes()
exclusive.- Returns:
- the opening quote at the given index, as a Unicode code point.
- Throws:
IndexOutOfBoundsException
- if the given index is out of bounds.
-
getClosingQuote
public final int getClosingQuote(int index) Returns the closing quote character at the given index. Index 0 stands for the default quote used at formatting time, which is usually'"'
. All other index are for optional quotes accepted at parsing time.- Parameters:
index
- index of the closing quote to get, from 0 togetNumPairedQuotes()
exclusive.- Returns:
- the closing quote at the given index, as a Unicode code point.
- Throws:
IndexOutOfBoundsException
- if the given index is out of bounds.
-
setPairedQuotes
Sets the opening and closing quotes to the given pairs. Each string shall contain exactly two code points (usually two characters). The first code point is taken as the opening quote, and the second code point as the closing quote.Example
The following code will instruct the WKT formatter to use the prettier “…” quotation marks at formatting time (especially useful forString
constants in Java code), but still accept the standard "…" quotation marks at parsing time:symbols.setPairedQuotes("“”", "\"\"");
- Parameters:
preferred
- the preferred pair of opening and closing quotes, used at formatting time.alternatives
- alternative pairs of opening and closing quotes accepted at parsing time.- Throws:
UnsupportedOperationException
- if thisSymbols
instance is immutable.
-
getOpenSequence
public final int getOpenSequence()Returns the character used for opening a sequence of values. This is usually'{'
.- Returns:
- the character used for opening a sequence of values, as a Unicode code point.
-
getCloseSequence
public final int getCloseSequence()Returns the character used for closing a sequence of values. This is usually'}'
.- Returns:
- the character used for closing a sequence of values, as a Unicode code point.
-
setSequenceBrackets
public void setSequenceBrackets(int openSequence, int closeSequence) Sets the characters used for opening and closing a sequence of values.- Parameters:
openSequence
- the character for opening a sequence of values, as a Unicode code point.closeSequence
- the character for closing a sequence of values, as a Unicode code point.- Throws:
UnsupportedOperationException
- if thisSymbols
instance is immutable.
-
getSeparator
Returns the string used as a separator in a list of values. This is usually", "
, but may be different if a non-English locale is used for formatting numbers.- Returns:
- the string used as a separator in a list of values.
-
setSeparator
Sets the string to use as a separator in a list of values. The given string will be used "as-is" at formatting time, but leading and trailing spaces will be ignored at parsing time.- Parameters:
separator
- the new string to use as a separator in a list of values.- Throws:
UnsupportedOperationException
- if thisSymbols
instance is immutable.
-
containsElement
Returnstrue
if the given WKT contains at least one instance of the given element. Invoking this method is equivalent to invokingString.contains(CharSequence)
except for the following:- The search is case-insensitive.
- Characters between opening quotes and closing quotes are ignored.
- The element found in the given WKT cannot be preceded by other Unicode identifier characters.
- The element found in the given WKT must be followed, ignoring space, by an opening bracket.
Example
containsElement(wkt, "AXIS")
returnstrue
if the given WKT contains at least one instance of theAXIS[…]
element, ignoring case.- Parameters:
wkt
- the WKT to inspect.element
- the element to search for.- Returns:
true
if the given WKT contains at least one instance of the given element.
-
clone
Returns a clone of thisSymbols
. The returned instance is modifiable (i.e. setter methods will not throwUnsupportedOperationException
). -
equals
Compares thisSymbols
with the given object for equality. -
hashCode
public int hashCode()Returns a hash code value for this object.
-