/*
* =============================================================================
*
* Copyright (c) 2014, The UNBESCAPE team (http://www.unbescape.org)
*
* Licensed 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.zkoss.lang;
/**
* <p>
* Types of escape operations to be performed on JavaScript text:
* </p>
*
* <ul>
* <li><tt><strong>SINGLE_ESCAPE_CHARS_DEFAULT_TO_XHEXA_AND_UHEXA</strong></tt>: Use
* Single Escape Chars whenever possible (depending on the specified
* {@link org.unbescape.javascript.JavaScriptEscapeLevel}). For escaped characters that do
* not have an associated SEC, default to using <tt>\xFF</tt> Hexadecimal Escapes
* if possible (characters <= <tt>U+00FF</tt>), then default to <tt>\uFFFF</tt>
* Hexadecimal Escapes. This type of escape <u>produces the smallest escaped string
* possible</u>.</li>
* <li><tt><strong>SINGLE_ESCAPE_CHARS_DEFAULT_TO_UHEXA</strong></tt>: Use
* Single Escape Chars whenever possible (depending on the specified
* {@link org.unbescape.javascript.JavaScriptEscapeLevel}). For escaped characters that do
* not have an associated SEC, default to using <tt>\uFFFF</tt> Hexadecimal Escapes.</li>
* <li><tt><strong>XHEXA_DEFAULT_TO_UHEXA</strong></tt>: Replace escaped characters with
* <tt>\xFF</tt> Hexadecimal Escapes if possible (characters <= <tt>U+00FF</tt>),
* default to <tt>\uFFFF</tt> Hexadecimal Escapes.</li>
* <li><tt><strong>UHEXA</strong></tt>: Replace escaped characters with
* <tt>\uFFFF</tt> Hexadecimal Escapes.</li>
* </ul>
*
* <p>
* For further information, see the <em>Glossary</em> and the <em>References</em> sections at the
* documentation for the {@link org.unbescape.javascript.JavaScriptEscape} class.
* </p>
*
* @author Daniel Fernández
*
* @since 1.0.0
*
*/
/**package*/ enum JavaScriptEscapeType {
/**
* Use Single Escape Chars if possible, default to \xFF hexadecimal escapes
* if possible (characters <= U+FF), then default to \uFFFF hexadecimal escapes.
*/
SINGLE_ESCAPE_CHARS_DEFAULT_TO_XHEXA_AND_UHEXA(true, true),
/**
* Use Single Escape Chars if possible, default to \uFFFF hexadecimal escapes.
*/
SINGLE_ESCAPE_CHARS_DEFAULT_TO_UHEXA(true, false),
/**
* Use \xFF hexadecimal escapes if possible (characters <= U+FF), default
* to \uFFFF hexadecimal escapes.
*/
XHEXA_DEFAULT_TO_UHEXA(false, true),
/**
* Always use \uFFFF hexadecimal escapes.
*/
UHEXA(false, false);
private final boolean useSECs;
private final boolean useXHexa;
JavaScriptEscapeType(final boolean useSECs, final boolean useXHexa) {
this.useSECs = useSECs;
this.useXHexa = useXHexa;
}
boolean getUseSECs() {
return this.useSECs;
}
boolean getUseXHexa() {
return this.useXHexa;
}
}