All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.wjybxx.dson.text.StringStyle Maven / Gradle / Ivy

The newest version!
/*
 * Copyright 2023-2024 wjybxx([email protected])
 *
 * 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 cn.wjybxx.dson.text;

/**
 * @author wjybxx
 * date - 2023/6/5
 */
public enum StringStyle {

    /**
     * 自动判别
     * 1.当内容较短且无特殊字符,且不是特殊值(true/false/数字)时不加引号
     * 2.当内容长度中等时,打印为双引号字符串
     * 3.当内容较长时,打印为文本模式
     */
    AUTO,

    /** 自动加引号模式 -- 优先无引号,如果不可以无引号则加引号 */
    AUTO_QUOTE,

    /** 双引号模式 -- 内容可能包含特殊字符,且想保持流式输入 */
    QUOTE,

    /** 无引号模式 -- 内容不包含特殊字符,且内容较短;要小心使用 */
    UNQUOTE,

    /**
     * 纯文本模式
     * 

* 1. 对内容无限制。 * 2. 不对内容进行转义,会考虑行长度限制,一行内容可能输出为多行。 * 3. 适用内容可能包含特殊字符,或内容较长时。 *

{@code
     * @"""
     * @- content
     * @- content
     * @"""
     * }
     * 
*/ TEXT, /** * 简单纯文本模式 *

* 1. 内容行不能以三引号(""")开头。 * 2. 默认不被启用,只有显式指定的情况下生效。 * 3. 不对内容进行转义,不考虑行长度限制,直接按行打印。 * 4. 适用内容可能包含特殊字符,或内容较长时。 *

{@code
     * """
     * content
     * """
     * }
     * 
*/ SIMPLE_TEXT, /** * 单行纯文本(sL标签) *

* 1. 内容不可以包含换行符。 * 2. 默认不被启用,只有显式指定的情况下生效。 * 3. 不对内容进行转义,不考虑行长度限制,直接打印。 * 4. 适合包含特殊字符的短文本 */ STRING_LINE, }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy