当前位置: 首页>>代码示例>>Java>>正文


Java KeyIntMap类代码示例

本文整理汇总了Java中com.sun.xml.internal.fastinfoset.util.KeyIntMap的典型用法代码示例。如果您正苦于以下问题:Java KeyIntMap类的具体用法?Java KeyIntMap怎么用?Java KeyIntMap使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


KeyIntMap类属于com.sun.xml.internal.fastinfoset.util包,在下文中一共展示了KeyIntMap类的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: encodeFourBitCharacters

import com.sun.xml.internal.fastinfoset.util.KeyIntMap; //导入依赖的package包/类
/**
 * Encode a chunk of Character Information Items using a restricted
 * alphabet that results in the encoding of a character in 4 bits
 * (or two characters per octet).
 *
 * @param id the restricted alphabet identifier.
 * @param table the table mapping characters to 4 bit values.
 * @param ch the array of characters.
 * @param offset the offset into the array of characters.
 * @param length the length of characters.
 * @param addToTable if characters should be added to table.
 * @throws ArrayIndexOutOfBoundsException.
 */
protected final void encodeFourBitCharacters(int id, int[] table, char[] ch, int offset, int length,
        boolean addToTable) throws FastInfosetException, IOException {
    if (addToTable) {
        // if char array could be added to table
        boolean canAddCharacterContentToTable =
                canAddCharacterContentToTable(length, _v.characterContentChunk);

        // obtain/get index
        int index = canAddCharacterContentToTable ?
            _v.characterContentChunk.obtainIndex(ch, offset, length, true) :
            _v.characterContentChunk.get(ch, offset, length);

        if (index != KeyIntMap.NOT_PRESENT) {
            // if char array is in table
            _b = EncodingConstants.CHARACTER_CHUNK | 0x20;
            encodeNonZeroIntegerOnFourthBit(index);
            return;
        } else if (canAddCharacterContentToTable) {
            // if char array is not in table, but could be added
            _b = EncodingConstants.CHARACTER_CHUNK | EncodingConstants.CHARACTER_CHUNK_RESTRICTED_ALPHABET_FLAG | EncodingConstants.CHARACTER_CHUNK_ADD_TO_TABLE_FLAG;
        } else {
            // if char array is not in table and could not be added
            _b = EncodingConstants.CHARACTER_CHUNK | EncodingConstants.CHARACTER_CHUNK_RESTRICTED_ALPHABET_FLAG;
        }
    } else {
        _b = EncodingConstants.CHARACTER_CHUNK | EncodingConstants.CHARACTER_CHUNK_RESTRICTED_ALPHABET_FLAG;
    }

    write (_b);

    // Encode bottom 6 bits of enoding algorithm id
    _b = id << 2;

    encodeNonEmptyFourBitCharacterStringOnSeventhBit(table, ch, offset, length);
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:49,代码来源:Encoder.java

示例2: encodeNonIdentifyingStringOnFirstBit

import com.sun.xml.internal.fastinfoset.util.KeyIntMap; //导入依赖的package包/类
/**
 * Encode a non identifying string on the first bit of an octet.
 * Implementation of clause C.14 of ITU-T Rec. X.891 | ISO/IEC 24824-1.
 *
 * @param s the string to encode
 * @param map the vocabulary table of strings to indexes.
 * @param addToTable true if the string could be added to the vocabulary
 *                   table (if table has enough memory)
 * @param mustBeAddedToTable true if the string must be added to the vocabulary
 *                   table (if not already present in the table).
 */
protected final void encodeNonIdentifyingStringOnFirstBit(String s, StringIntMap map,
        boolean addToTable, boolean mustBeAddedToTable) throws IOException {
    if (s == null || s.length() == 0) {
        // C.26 an index (first bit '1') with seven '1' bits for an empty string
        write(0xFF);
    } else {
        if (addToTable || mustBeAddedToTable) {
            // if attribute value could be added to table
            boolean canAddAttributeToTable = mustBeAddedToTable ||
                    canAddAttributeToTable(s.length());

            // obtain/get index
            int index = canAddAttributeToTable ?
                map.obtainIndex(s) :
                map.get(s);

            if (index != KeyIntMap.NOT_PRESENT) {
                // if attribute value is in table
                encodeNonZeroIntegerOnSecondBitFirstBitOne(index);
            } else if (canAddAttributeToTable) {
                // if attribute value is not in table, but could be added
                _b = EncodingConstants.NISTRING_ADD_TO_TABLE_FLAG |
                        _nonIdentifyingStringOnFirstBitCES;
                encodeNonEmptyCharacterStringOnFifthBit(s);
            } else {
                // if attribute value is not in table and could not be added
                _b = _nonIdentifyingStringOnFirstBitCES;
                encodeNonEmptyCharacterStringOnFifthBit(s);
            }
        } else {
            _b = _nonIdentifyingStringOnFirstBitCES;
            encodeNonEmptyCharacterStringOnFifthBit(s);
        }
    }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:47,代码来源:Encoder.java

示例3: encodeNonIdentifyingStringOnThirdBit

import com.sun.xml.internal.fastinfoset.util.KeyIntMap; //导入依赖的package包/类
/**
 * Encode a non identifying string on the third bit of an octet.
 * Implementation of clause C.15 of ITU-T Rec. X.891 | ISO/IEC 24824-1.
 *
 * @param ch the array of characters.
 * @param offset the offset into the array of characters.
 * @param length the length of characters.
 * @param map the vocabulary table of character arrays to indexes.
 * @param addToTable true if the array of characters should be added to the vocabulary
 *                   table (if not already present in the table).
 * @param clone true if the array of characters should be cloned if added
 *              to the vocabulary table.
 */
protected final void encodeNonIdentifyingStringOnThirdBit(char[] ch, int offset, int length,
        CharArrayIntMap map, boolean addToTable, boolean clone) throws IOException {
    // length cannot be zero since sequence of CIIs has to be > 0

    if (addToTable) {
        // if char array could be added to table
        boolean canAddCharacterContentToTable =
                canAddCharacterContentToTable(length, map);

        // obtain/get index
        int index = canAddCharacterContentToTable ?
            map.obtainIndex(ch, offset, length, clone) :
            map.get(ch, offset, length);

        if (index != KeyIntMap.NOT_PRESENT) {
            // if char array is in table
            _b = EncodingConstants.CHARACTER_CHUNK | 0x20;
            encodeNonZeroIntegerOnFourthBit(index);
        } else if (canAddCharacterContentToTable) {
            // if char array is not in table, but could be added
            _b = EncodingConstants.CHARACTER_CHUNK_ADD_TO_TABLE_FLAG |
                    _nonIdentifyingStringOnThirdBitCES;
            encodeNonEmptyCharacterStringOnSeventhBit(ch, offset, length);
        } else {
            // if char array is not in table and could not be added
                _b = _nonIdentifyingStringOnThirdBitCES;
                encodeNonEmptyCharacterStringOnSeventhBit(ch, offset, length);
        }
    } else {
        // char array will not be added to map
        _b = _nonIdentifyingStringOnThirdBitCES;
        encodeNonEmptyCharacterStringOnSeventhBit(ch, offset, length);
    }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:48,代码来源:Encoder.java

示例4: encodeIdentifyingNonEmptyStringOnFirstBit

import com.sun.xml.internal.fastinfoset.util.KeyIntMap; //导入依赖的package包/类
/**
 * Encode a non empty identifying string on the first bit of an octet.
 * Implementation of clause C.13 of ITU-T Rec. X.891 | ISO/IEC 24824-1.
 *
 * @param s the identifying string.
 * @param map the vocabulary table to use to determin the index of the
 *        identifying string
 */
protected final void encodeIdentifyingNonEmptyStringOnFirstBit(String s, StringIntMap map) throws IOException {
    int index = map.obtainIndex(s);
    if (index == KeyIntMap.NOT_PRESENT) {
        // _b = 0;
        encodeNonEmptyOctetStringOnSecondBit(s);
    } else {
        // _b = 0x80;
        encodeNonZeroIntegerOnSecondBitFirstBitOne(index);
    }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:19,代码来源:Encoder.java

示例5: addToNameTable

import com.sun.xml.internal.fastinfoset.util.KeyIntMap; //导入依赖的package包/类
private void addToNameTable(QName n, QualifiedNameArray a,
        boolean isAttribute,
        StringIntMap prefixMap, StringIntMap namespaceNameMap,
        StringIntMap localNameMap) {
    int namespaceURIIndex = -1;
    int prefixIndex = -1;
    if (n.getNamespaceURI().length() > 0) {
        namespaceURIIndex = namespaceNameMap.obtainIndex(n.getNamespaceURI());
        if (namespaceURIIndex == KeyIntMap.NOT_PRESENT) {
            namespaceURIIndex = namespaceName.getSize();
            namespaceName.add(n.getNamespaceURI());
        }

        if (n.getPrefix().length() > 0) {
            prefixIndex = prefixMap.obtainIndex(n.getPrefix());
            if (prefixIndex == KeyIntMap.NOT_PRESENT) {
                prefixIndex = prefix.getSize();
                prefix.add(n.getPrefix());
            }
        }
    }

    int localNameIndex = localNameMap.obtainIndex(n.getLocalPart());
    if (localNameIndex == KeyIntMap.NOT_PRESENT) {
        localNameIndex = localName.getSize();
        localName.add(n.getLocalPart());
    }

    QualifiedName name = new QualifiedName(n.getPrefix(), n.getNamespaceURI(), n.getLocalPart(),
            a.getSize(),
            prefixIndex, namespaceURIIndex, localNameIndex);
    if (isAttribute) {
        name.createAttributeValues(DuplicateAttributeVerifier.MAP_SIZE);
    }
    a.add(name);
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:37,代码来源:ParserVocabulary.java

示例6: addToNameTable

import com.sun.xml.internal.fastinfoset.util.KeyIntMap; //导入依赖的package包/类
private void addToNameTable(QName n, LocalNameQualifiedNamesMap m) {
    int namespaceURIIndex = -1;
    int prefixIndex = -1;
    if (n.getNamespaceURI().length() > 0) {
        namespaceURIIndex = namespaceName.obtainIndex(n.getNamespaceURI());
        if (namespaceURIIndex == KeyIntMap.NOT_PRESENT) {
            namespaceURIIndex = namespaceName.get(n.getNamespaceURI());
        }

        if (n.getPrefix().length() > 0) {
            prefixIndex = prefix.obtainIndex(n.getPrefix());
            if (prefixIndex == KeyIntMap.NOT_PRESENT) {
                prefixIndex = prefix.get(n.getPrefix());
            }
        }
    }

    int localNameIndex = localName.obtainIndex(n.getLocalPart());
    if (localNameIndex == KeyIntMap.NOT_PRESENT) {
        localNameIndex = localName.get(n.getLocalPart());
    }

    QualifiedName name = new QualifiedName(n.getPrefix(), n.getNamespaceURI(), n.getLocalPart(),
            m.getNextIndex(),
            prefixIndex, namespaceURIIndex, localNameIndex);

    LocalNameQualifiedNamesMap.Entry entry = null;
    if (_useLocalNameAsKey) {
        entry = m.obtainEntry(n.getLocalPart());
    } else {
        String qName = (prefixIndex == -1)
            ? n.getLocalPart()
            : n.getPrefix() + ":" + n.getLocalPart();
        entry = m.obtainEntry(qName);
    }

    entry.addQualifiedName(name);
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:39,代码来源:SerializerVocabulary.java

示例7: addToTable

import com.sun.xml.internal.fastinfoset.util.KeyIntMap; //导入依赖的package包/类
public void addToTable(String s, Set v, StringIntMap m, StringArray a) {
    if (s.length() == 0) {
        return;
    }

    if (m.obtainIndex(s) == KeyIntMap.NOT_PRESENT) {
        a.add(s);
    }

    v.add(s);
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:12,代码来源:VocabularyGenerator.java

示例8: addToCharArrayTable

import com.sun.xml.internal.fastinfoset.util.KeyIntMap; //导入依赖的package包/类
public void addToCharArrayTable(CharArray c) {
    if (_serializerVocabulary.characterContentChunk.obtainIndex(c.ch, c.start, c.length, false) == KeyIntMap.NOT_PRESENT) {
        _parserVocabulary.characterContentChunk.add(c.ch, c.length);
    }

    _v.characterContentChunks.add(c.toString());
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:8,代码来源:VocabularyGenerator.java


注:本文中的com.sun.xml.internal.fastinfoset.util.KeyIntMap类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。