001/*
002 *  Licensed to the Apache Software Foundation (ASF) under one
003 *  or more contributor license agreements.  See the NOTICE file
004 *  distributed with this work for additional information
005 *  regarding copyright ownership.  The ASF licenses this file
006 *  to you under the Apache License, Version 2.0 (the
007 *  "License"); you may not use this file except in compliance
008 *  with the License.  You may obtain a copy of the License at
009 *
010 *    http://www.apache.org/licenses/LICENSE-2.0
011 *
012 *  Unless required by applicable law or agreed to in writing,
013 *  software distributed under the License is distributed on an
014 *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015 *  KIND, either express or implied.  See the License for the
016 *  specific language governing permissions and limitations
017 *  under the License.
018 *
019 */
020package org.apache.directory.shared.util;
021
022
023/**
024 * Various UTF constants are kept here.
025 *
026 * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
027 */
028public interface UnicodeConstants
029{
030    int UTF8_MULTI_BYTES_MASK = 0x0080;
031    int UTF8_TWO_BYTES_MASK = 0x00E0;
032    int UTF8_TWO_BYTES = 0x00C0;
033    int UTF8_THREE_BYTES_MASK = 0x00F0;
034    int UTF8_THREE_BYTES = 0x00E0;
035    int UTF8_FOUR_BYTES_MASK = 0x00F8;
036    int UTF8_FOUR_BYTES = 0x00F0;
037    int UTF8_FIVE_BYTES_MASK = 0x00FC;
038    int UTF8_FIVE_BYTES = 0x00F8;
039    int UTF8_SIX_BYTES_MASK = 0x00FE;
040    int UTF8_SIX_BYTES = 0x00FC;
041
042    /** %01-%27 %2B-%5B %5D-%7F */
043    boolean[] UNICODE_SUBSET =
044        {
045            false, true,  true,  true,  true,  true,  true,  true, // '\0'
046            true,  true,  true,  true,  true,  true,  true,  true,
047            true,  true,  true,  true,  true,  true,  true,  true,
048            true,  true,  true,  true,  true,  true,  true,  true,
049            true,  true,  true,  true,  true,  true,  true,  true,
050            false, false, false, true,  true,  true,  true,  true, // '(', ')', '*'
051            true,  true,  true,  true,  true,  true,  true,  true,
052            true,  true,  true,  true,  true,  true,  true,  true,
053            true,  true,  true,  true,  true,  true,  true,  true,
054            true,  true,  true,  true,  true,  true,  true,  true,
055            true,  true,  true,  true,  true,  true,  true,  true,
056            true,  true,  true,  true,  false, true,  true,  true, // '\'
057            true,  true,  true,  true,  true,  true,  true,  true,
058            true,  true,  true,  true,  true,  true,  true,  true,
059            true,  true,  true,  true,  true,  true,  true,  true,
060            true,  true,  true,  true,  true,  true,  true,  true,
061        };
062    int CHAR_ONE_BYTE_MASK = 0xFFFFFF80;
063    int CHAR_TWO_BYTES_MASK = 0xFFFFF800;
064    int CHAR_THREE_BYTES_MASK = 0xFFFF0000;
065    int CHAR_FOUR_BYTES_MASK = 0xFFE00000;
066    int CHAR_FIVE_BYTES_MASK = 0xFC000000;
067    int CHAR_SIX_BYTES_MASK = 0x80000000;
068}