package com.opslab;

import com.opslab.helper.HexStrHelper;

/**
 * 一些常用的常量
 */
public final class Opslab {

    /**
     * 日期时间类型格式
     */
    public static final String DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss";

    /**
     * 日期类型格式
     */
    public static final String DATE_FORMAT = "yyyy-MM-dd";

    /**
     * 时间类型的格式
     */
    public static final String TIME_FORMAT = "HH:mm:ss";

    /**
     * 7位ASCII字符，也叫作ISO646-US、Unicode字符集的基本拉丁块
     */
    public static final String US_ASCII = "US-ASCII";

    /**
     * ISO 拉丁字母表 No.1，也叫作 ISO-LATIN-1
     */
    public static final String ISO_8859_1 = "ISO-8859-1";

    /**
     * 8 位 UCS 转换格式
     */
    public static final String UTF_8 = "UTF-8";

    /**
     * 16 位 UCS 转换格式，Big Endian（最低地址存放高位字节）字节顺序
     */
    public static final String UTF_16BE = "UTF-16BE";

    /**
     * 16 位 UCS 转换格式，Little-endian（最高地址存放低位字节）字节顺序
     */
    public static final String UTF_16LE = "UTF-16LE";

    /**
     * 16 位 UCS 转换格式，字节顺序由可选的字节顺序标记来标识
     */
    public static final String UTF_16 = "UTF-16";

    /**
     * 中文超大字符集
     */
    public static final String GBK = "GBK";

    /**
     * 最常见的中文字符集
     */
    public static final String GB2312 = "GB2312";

    /**
     * 空字符串
     */
    public static final String STR_EMPTY = "";


    /**
     * 未登陆
     */
    public final static String SYS_NOLOGIN = "Nologin";


    /**
     * 成功
     */
    public final static String SYS_SUCCESS = "Success";


    /**
     * 失败
     */
    public final static String SYS_ERROR = "Error";


    /**
     * 异常
     */
    public final static String SYS_EXCEPTION = "Exception";


    /**
     * 无记录
     */
    public final static String SYS_NORECORD = "NoRecord";

    /**
     * 业务访问
     */
    public final static String BUSINESS_ACCESS = "ACCESS";


    /**
     * 业务插入
     */
    public final static String BUSINESS_INSERT = "INSERT";


    /**
     * 业务更新
     */
    public final static String BUSINESS_UPDATE = "UPDATE";


    /**
     * 业务删除
     */
    public final static String BUSINESS_DELETE = "DELETE";


    /**
     * 业务文件上传
     */
    public final static String BUSINESS_UPLOAD = "UPLOAD";


    /**
     * JVM的版本
     */
    public static final String JVM_VERSION = "java.version";
    /**
     * JVM的编码
     */
    public static final String JVM_ENCODING = "file.encoding";
    /**
     * JVM默认的临时目录
     */
    public static final String JVM_TEMPDIR = "java.io.tmpdir";

    /**
     * http代理主机标识
     */
    public static final String HTTP_PROXY_HOST = "http.proxyHost";

    /**
     * http代理主机端口
     */
    public static final String HTTP_PROXY_PORT = "http.proxyPort";

    /**
     * http代理用户标识
     */
    public static final String HTTP_PROXY_USER = "http.proxyUser";

    /**
     * http代理用户密码标识
     */
    public static final String HTTP_PROXY_PASSWORD = "http.proxyPassword";

    /**
     * 主机架构
     */
    public static final String SYS_OS_ARCH = "os.arch";
    /**
     * 主机类型
     */
    public static final String SYS_OS_NAME = "os.name";
    /**
     * 主机类型版本
     */
    public static final String SYS_OS_VERSION = "os.version";
    /**
     * 操作系统类型
     */
    public static final String SYS_SUN_DESKTOP = "sun.desktop";

    /**
     * 系统文件分隔符key
     */
    public static final String SYS_FILE_SEPARATOR = "file.separator";
    /**
     * 系统路径分隔符key
     */
    public static final String SYS_PATH_SEPARATOR = "path.separator";

    /**
     * 系统换行符key
     */
    public static final String SYS_LINE_SEPARATOR = "line.separator";

    /**
     * 十六进制字符串
     */
    public static final String HEX_CHAR_STR = "0123456789ABCDEF";

    /**
     * 十六进制字符
     */
    public static final char[] HEX_CHAR = "0123456789ABCDEF".toCharArray();


    /**
     * 常用的符号
     */
    public static final char[] SYMBOL_FH =
            new char[]{0x2591, 0x2592, 0x25a3, 0x25a4, 0x25a5, 0x25a6,
                    0x25a7, 0x25a8, 0x25a9, 0x2c, 0x25aa, 0x25ab, 0x25ac, 0x25c6, 0x25c7, 0x25c8, 0x25ce, 0x25cf,
                    0x25d0, 0x25d1, 0x2609, 0x260e, 0x260f, 0x261c, 0x261e, 0x263a, 0x263b, 0x263c, 0x2c, 0x2660,
                    0x2661, 0x2662, 0x2663, 0x2664, 0x2665, 0x2666, 0x2667, 0x2668, 0x2669, 0x266a, 0x266b, 0x266c,
                    0x266d, 0x2e, 0x3002, 0xff0c, 0x3001, 0x3b, 0xff1a, 0xff1f, 0x21, 0x2c, 0x2c9, 0x2c7, 0xa8, 0x60,
                    0x7e, 0x3005, 0xff5e, 0x2016, 0x2236, 0x27, 0x60, 0x7c, 0xb7, 0x2026, 0x2014, 0xff5e, 0x2d, 0x2c,
                    0x3003, 0x2018, 0x2019, 0x201c, 0x201d, 0x301d, 0x301e, 0x3014, 0x3015, 0x3008, 0x3009, 0x300a,
                    0x300b, 0x300c, 0x300d, 0x300e, 0x300f, 0x3016, 0x3017, 0x3010, 0x3011, 0x28, 0x29, 0x5b, 0x2c,
                    0x5d, 0x7b, 0xff5d, 0xfe3b, 0xfe3c, 0xfe44, 0xfe43, 0x2c};

    /**
     * 常用的数学符号
     */
    public static final String[] SYMBOL_MATH = new String[]{"+", "-", "×", "÷", "﹢", "﹣", "±", "/", "=", "∥", "∠", "≌", "∽",
            "≦", "≧", "≒", "﹤", "﹥", "≈", "≡", "≠", "=", "≤", "≥", "<", ">", "≮", "≯", "∷", "∶", "∫", "∮",
            "∝", "∞", "∧", "∨", "∑", "∏", "∪", "∩", "∈", "∵", "∴", "⊥", "∥", "∠", "⌒", "⊙", "√", "∟", "⊿", "㏒", "㏑", "%", "‰"};


    /**
     * 计量符号
     */
    public static final String[] SYMBOL_UNIT = new String[]{"㎎", "㎏", "㎜", "㎝", "㎞", "㎡", "㏄", "㏎", "㏑",
            "㏒", "㏕", "℡", "%", "‰", "℃", "℉", "°", "′", "″", "$", "￡", "￥", "￠", "♂", "♀", "℅"};

    /**
     * 常用的数学符号
     */
    public static final String[] SYMBOL_NUMBER = new String[]{
            "①", "②", "③", "④", "⑤", "⑥", "⑦", "⑧", "⑨", "⑩",
            "㈠", "㈡", "㈢", "㈣", "㈤", "㈥", "㈦", "㈧", "㈨", "㈩",
            "⑴", "⑵", "⑶", "⑷", "⑸", "⑹", "⑺", "⑻", "⑼", "⑽",
            "⑾", "⑿", "⒀", "⒁", "⒂", "⒃", "⒄", "⒅", "⒆", "⒇",
            "Ⅰ", "Ⅱ", "Ⅲ", "Ⅳ", "Ⅴ", "Ⅵ", "Ⅶ", "Ⅷ", "Ⅸ", "Ⅹ",
            "Ⅺ", "Ⅻ", "ⅰ", "ⅱ", "ⅲ", "ⅳ", "ⅴ", "ⅵ", "ⅶ", "ⅷ", "ⅸ", "ⅹ"};


    /**
     * 一些常用的无意义的符号(只相对于中文)
     * "·ˉˇ¨〃々—～‖…「」『』〖〗【】±+-×÷∧∨∑∏∪∩∈√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∶ ∵∴∷♂♀°′" +
     * "″℃$¤￠￡‰§№☆★〇○●◎◇◆ 回□■△▽⊿▲▼◣◤◢◥▁▂▃▄▅▆▇█▉▊▋▌▍▎▏▓※→←↑↓↖↗↘↙〓!￥^`{|｝ぁあぃいぅうぇえぉおかがきぎ" +
     * "くぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴ" +
     * "ふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセ" +
     * "ゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵ" +
     * "ヶΓΔΛΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθ ικλμνξοπρστυφχψ ω︵︶︹︺︿﹀︽︾﹁﹂﹃﹄︻︼︷︸АБВГДЕЁЖЗИЙКЛМНОПРСТУ" +
     * "ФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыь эюāáǎàēéěèī íǐìōóǒòūúǔùǖǘǚǜüêɑńňɡㄅㄆㄇㄈㄉㄊㄋㄌ" +
     * "ㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ︱︳︴﹏﹋﹌─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└" +
     * "┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄ ╅╆╇╈╉╊╋㊣㈱曱甴" +
     * "∟┅﹍╭╮╰╯^︵^`√卐℡ぁ〝〞ミ灬№*ㄨ≮≯∝≌∽≦≧≒じぷ┗┛￥￡§я-―‥…‰′″℅℉№℡∕∝" +
     * "∣═║╒╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡╢╣╤╥╦╧╨╩╪╫╬╱╲╳▔▕〆〒〡〢〣〤〥〦〧〨〩︰﹍﹎------"
     */
    public static final char[] SYMBOL_UNMEANING = new char[]{0xb7, 0x2c9, 0x2c7, 0xa8, 0x3003, 0x3005, 0x2014, 0xff5e,
            0x2016, 0x2026, 0x300c, 0x300d, 0x300e, 0x300f, 0x3016, 0x3017, 0x3010, 0x3011, 0xb1, 0x2b, 0x2d, 0xd7,
            0xf7, 0x2227, 0x2228, 0x2211, 0x220f, 0x222a, 0x2229, 0x2208, 0x221a, 0x22a5, 0x2225, 0x2220, 0x2312,
            0x2299, 0x222b, 0x222e, 0x2261, 0x224c, 0x2248, 0x223d, 0x221d, 0x2260, 0x226e, 0x226f, 0x2264, 0x2265,
            0x221e, 0x2236, 0x20, 0x2235, 0x2234, 0x2237, 0x2642, 0x2640, 0xb0, 0x2032, 0x2033, 0x2103, 0x24, 0xa4,
            0xffe0, 0xffe1, 0x2030, 0xa7, 0x2116, 0x2606, 0x2605, 0x3007, 0x25cb, 0x25cf, 0x25ce, 0x25c7, 0x25c6,
            0x20, 0x56de, 0x25a1, 0x25a0, 0x25b3, 0x25bd, 0x22bf, 0x25b2, 0x25bc, 0x25e3, 0x25e4, 0x25e2, 0x25e5,
            0x2581, 0x2582, 0x2583, 0x2584, 0x2585, 0x2586, 0x2587, 0x2588, 0x2589, 0x258a, 0x258b, 0x258c, 0x258d,
            0x258e, 0x258f, 0x2593, 0x203b, 0x2192, 0x2190, 0x2191, 0x2193, 0x2196, 0x2197, 0x2198, 0x2199, 0x3013,
            0x21, 0xffe5, 0x5e, 0x60, 0x7b, 0x7c, 0xff5d, 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047,
            0x3048, 0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050, 0x3051, 0x3052, 0x3053, 0x3054,
            0x3055, 0x3056, 0x3057, 0x3058, 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, 0x3060, 0x3061,
            0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068, 0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e,
            0x306f, 0x3070, 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, 0x3078, 0x3079, 0x307a, 0x307b,
            0x307c, 0x307d, 0x307e, 0x307f, 0x3080, 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088,
            0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090, 0x3091, 0x3092, 0x3093, 0x30a1, 0x30a2,
            0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7, 0x30a8, 0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af,
            0x30b0, 0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, 0x30b8, 0x30b9, 0x30ba, 0x30bb, 0x30bc,
            0x30bd, 0x30be, 0x30bf, 0x30c0, 0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8, 0x30c9,
            0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf, 0x30d0, 0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5, 0x30d6,
            0x30d7, 0x30d8, 0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd, 0x30de, 0x30df, 0x30e0, 0x30e1, 0x30e2, 0x30e3,
            0x30e4, 0x30e5, 0x30e6, 0x30e7, 0x30e8, 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef, 0x30f0,
            0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, 0x393, 0x394, 0x39b, 0x39e, 0x39f, 0x3a0, 0x3a1, 0x3a3,
            0x3a4, 0x3a5, 0x3a6, 0x3a7, 0x3a8, 0x3a9, 0x3b1, 0x3b2, 0x3b3, 0x3b4, 0x3b5, 0x3b6, 0x3b7, 0x3b8, 0x20,
            0x3b9, 0x3ba, 0x3bb, 0x3bc, 0x3bd, 0x3be, 0x3bf, 0x3c0, 0x3c1, 0x3c3, 0x3c4, 0x3c5, 0x3c6, 0x3c7, 0x3c8,
            0x20, 0x3c9, 0xfe35, 0xfe36, 0xfe39, 0xfe3a, 0xfe3f, 0xfe40, 0xfe3d, 0xfe3e, 0xfe41, 0xfe42, 0xfe43,
            0xfe44, 0xfe3b, 0xfe3c, 0xfe37, 0xfe38, 0x410, 0x411, 0x412, 0x413, 0x414, 0x415, 0x401, 0x416, 0x417,
            0x418, 0x419, 0x41a, 0x41b, 0x41c, 0x41d, 0x41e, 0x41f, 0x420, 0x421, 0x422, 0x423, 0x424, 0x425, 0x426,
            0x427, 0x428, 0x429, 0x42a, 0x42b, 0x42c, 0x42d, 0x42e, 0x42f, 0x430, 0x431, 0x432, 0x433, 0x434, 0x435,
            0x451, 0x436, 0x437, 0x438, 0x439, 0x43a, 0x43b, 0x43c, 0x43d, 0x43e, 0x43f, 0x440, 0x441, 0x442, 0x443,
            0x444, 0x445, 0x446, 0x447, 0x448, 0x449, 0x44a, 0x44b, 0x44c, 0x20, 0x44d, 0x44e, 0x101, 0xe1, 0x1ce, 0xe0,
            0x113, 0xe9, 0x11b, 0xe8, 0x12b, 0x20, 0xed, 0x1d0, 0xec, 0x14d, 0xf3, 0x1d2, 0xf2, 0x16b, 0xfa, 0x1d4, 0xf9,
            0x1d6, 0x1d8, 0x1da, 0x1dc, 0xfc, 0xea, 0x251, 0x144, 0x148, 0x261, 0x3105, 0x3106, 0x3107, 0x3108, 0x3109,
            0x310a, 0x310b, 0x310c, 0x310d, 0x310e, 0x310f, 0x3110, 0x3111, 0x3112, 0x3113, 0x3114, 0x3115, 0x3116, 0x3117,
            0x3118, 0x3119, 0x311a, 0x311b, 0x311c, 0x311d, 0x311e, 0x311f, 0x3120, 0x3121, 0x3122, 0x3123, 0x3124, 0x3125,
            0x3126, 0x3127, 0x3128, 0x3129, 0xfe31, 0xfe33, 0xfe34, 0xfe4f, 0xfe4b, 0xfe4c, 0x2500, 0x2501, 0x2502, 0x2503,
            0x2504, 0x2505, 0x2506, 0x2507, 0x2508, 0x2509, 0x250a, 0x250b, 0x250c, 0x250d, 0x250e, 0x250f, 0x2510, 0x2511,
            0x2512, 0x2513, 0x2514, 0x2515, 0x2516, 0x2517, 0x2518, 0x2519, 0x251a, 0x251b, 0x251c, 0x251d, 0x251e, 0x251f,
            0x2520, 0x2521, 0x2522, 0x2523, 0x2524, 0x2525, 0x2526, 0x2527, 0x2528, 0x2529, 0x252a, 0x252b, 0x252c, 0x252d,
            0x252e, 0x252f, 0x2530, 0x2531, 0x2532, 0x2533, 0x2534, 0x2535, 0x2536, 0x2537, 0x2538, 0x2539, 0x253a, 0x253b,
            0x253c, 0x253d, 0x253e, 0x253f, 0x2540, 0x2541, 0x2542, 0x2543, 0x2544, 0x20, 0x2545, 0x2546, 0x2547, 0x2548,
            0x2549, 0x254a, 0x254b, 0x32a3, 0x3231, 0x66f1, 0x7534, 0x221f, 0x2505, 0xfe4d, 0x256d, 0x256e, 0x2570, 0x256f,
            0x5e, 0xfe35, 0x5e, 0x60, 0x221a, 0x5350, 0x2121, 0x3041, 0x301d, 0x301e, 0x30df, 0x706c, 0x2116, 0x2a, 0x3128,
            0x226e, 0x226f, 0x221d, 0x224c, 0x223d, 0x2266, 0x2267, 0x2252, 0x3058, 0x3077, 0x2517, 0x251b, 0xffe5, 0xffe1,
            0xa7, 0x44f, 0x2015, 0x2025, 0x2026, 0x2030, 0x2032, 0x2033, 0x2105, 0x2109, 0x2116, 0x2121, 0x2215, 0x221d,
            0x2223, 0x2550, 0x2551, 0x2552, 0x2553, 0x2554, 0x2555, 0x2556, 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x255c,
            0x255d, 0x255e, 0x255f, 0x2560, 0x2561, 0x2562, 0x2563, 0x2564, 0x2565, 0x2566, 0x2567, 0x2568, 0x2569, 0x256a,
            0x256b, 0x256c, 0x2571, 0x2572, 0x2573, 0x2594, 0x2595, 0x3006, 0x3012, 0x3021, 0x3022, 0x3023, 0x3024, 0x3025,
            0x3026, 0x3027, 0x3028, 0x3029, 0xfe30, 0xfe4d, 0xfe4e};
    //
    // public static void main(String[] args) {
    //     String str = "";
    //
    //     String[] strs1 = HexStrHelper.hexstrArray(str);
    //
    //     System.out.println(String.join(",", strs1));
    // }
}
