blob: 5b9837e90523a6c9380ad29d6953bd8afd731eb6 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.sis.io.wkt;
/**
* Whether WKT keywords shall be written with lower, upper or camel case styles.
* The most common usage for WKT keywords is upper case.
* However with version 2 of Well Known Text, camel case keywords may be easier to read
* because WKT 2 has more keywords made by combination of words. Examples:
*
* <table class="sis">
* <caption>WKT element case comparisons</caption>
* <tr><th>Upper case</th> <th>Camel case</th></tr>
* <tr><td>{@code TIMEEXTENT}</td> <td>{@code TimeExtent}</td></tr>
* <tr><td>{@code ANGLEUNIT}</td> <td>{@code AngleUnit}</td></tr>
* <tr><td>{@code BASEGEODCRS}</td> <td>{@code BaseGeodCRS}</td></tr>
* <tr><td>{@code DERIVINGCONVERSION}</td> <td>{@code DerivingConversion}</td></tr>
* <tr><td>{@code ENGINEERINGDATUM}</td> <td>{@code EngineeringDatum}</td></tr>
* </table>
*
* <div class="note"><b>Note:</b>
* Well-Known Text keywords are case insensitive at parsing time. {@code KEYWORD} is equivalent to
* {@code keyword} is equivalent to {@code KeyWord} and to {@code kEYwORd}.</div>
*
* @author Martin Desruisseaux (Geomatys)
* @version 0.6
* @since 0.4
* @module
*/
public enum KeywordCase {
/**
* WKT formatting uses lower case keywords.
*/
LOWER_CASE,
/**
* WKT formatting uses upper case keywords.
* This is the most usual case in WKT 1 strings.
*/
UPPER_CASE,
/**
* WKT formatting uses CamelCase keywords. This is more useful in WKT 2 strings, which
* use longer keywords than WKT 1 did. Examples: {@code "TimeExtent"}, {@code "AngleUnit"}.
*/
CAMEL_CASE,
/**
* Keywords case is determined by the WKT {@linkplain Convention convention}.
* The current mapping is:
*
* <ul>
* <li>Well Known Text version 2 uses camel case.</li>
* <li>Well Known Text version 1 uses upper case.</li>
* </ul>
*/
DEFAULT
}