/
SerializerVocabulary.java
90 lines (73 loc) · 3.67 KB
/
SerializerVocabulary.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
/*
* Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Distribution License v. 1.0, which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
package com.sun.xml.fime.vocab;
import com.sun.xml.fime.EncodingConstants;
import com.sun.xml.fime.util.CharArrayIntMap;
import com.sun.xml.fime.util.FixedEntryStringIntMap;
import com.sun.xml.fime.util.KeyIntMap;
import com.sun.xml.fime.util.LocalNameQualifiedNamesMap;
import com.sun.xml.fime.util.StringIntMap;
public class SerializerVocabulary extends Vocabulary {
public static final int ATTRIBUTE_VALUE_SIZE_CONSTRAINT = 7;
public static final int CHARACTER_CONTENT_CHUNK_SIZE_CONSTRAINT = 7;
public final StringIntMap restrictedAlphabet;
public final StringIntMap encodingAlgorithm;
public final StringIntMap namespaceName;
public final StringIntMap prefix;
public final StringIntMap localName;
public final StringIntMap otherNCName;
public final StringIntMap otherURI;
public final StringIntMap attributeValue;
public final CharArrayIntMap otherString;
public final CharArrayIntMap characterContentChunk;
public final LocalNameQualifiedNamesMap elementName;
public final LocalNameQualifiedNamesMap attributeName;
public final KeyIntMap[] tables = new KeyIntMap[12];
public int attributeValueSizeConstraint = ATTRIBUTE_VALUE_SIZE_CONSTRAINT;
public int characterContentChunkSizeContraint = CHARACTER_CONTENT_CHUNK_SIZE_CONSTRAINT;
protected SerializerVocabulary _readOnlyVocabulary;
public SerializerVocabulary() {
tables[RESTRICTED_ALPHABET] = restrictedAlphabet = new StringIntMap(4);
tables[ENCODING_ALGORITHM] = encodingAlgorithm = new StringIntMap(4);
tables[PREFIX] = prefix = new FixedEntryStringIntMap(EncodingConstants.XML_NAMESPACE_PREFIX, 8);
tables[NAMESPACE_NAME] = namespaceName = new FixedEntryStringIntMap(EncodingConstants.XML_NAMESPACE_NAME, 8);
tables[LOCAL_NAME] = localName = new StringIntMap();
tables[OTHER_NCNAME] = otherNCName = new StringIntMap(4);
tables[OTHER_URI] = otherURI = new StringIntMap(4);
tables[ATTRIBUTE_VALUE] = attributeValue = new StringIntMap();
tables[OTHER_STRING] = otherString = new CharArrayIntMap(4);
tables[CHARACTER_CONTENT_CHUNK] = characterContentChunk = new CharArrayIntMap();
tables[ELEMENT_NAME] = elementName = new LocalNameQualifiedNamesMap();
tables[ATTRIBUTE_NAME] = attributeName = new LocalNameQualifiedNamesMap();
}
public SerializerVocabulary getReadOnlyVocabulary() {
return _readOnlyVocabulary;
}
protected void setReadOnlyVocabulary(SerializerVocabulary readOnlyVocabulary, boolean clear) {
for (int i = 0; i < tables.length; i++) {
tables[i].setReadOnlyMap(readOnlyVocabulary.tables[i], clear);
}
}
public void setInitialVocabulary(SerializerVocabulary initialVocabulary, boolean clear) {
setExternalVocabularyURI(null);
setInitialReadOnlyVocabulary(true);
setReadOnlyVocabulary(initialVocabulary, clear);
}
public void setExternalVocabulary(String externalVocabularyURI, SerializerVocabulary externalVocabulary, boolean clear) {
setInitialReadOnlyVocabulary(false);
setExternalVocabularyURI(externalVocabularyURI);
setReadOnlyVocabulary(externalVocabulary, clear);
}
public void clear() {
for (int i = 0; i < tables.length; i++) {
tables[i].clear();
}
}
}