public QName readQName() throws IOException {
final byte valueType = readByte();
switch (valueType) {
- case TokenTypes.IS_QNAME_CODE:
+ case NeonSR2Tokens.IS_QNAME_CODE:
return codedQName(readInt());
- case TokenTypes.IS_QNAME_VALUE:
+ case NeonSR2Tokens.IS_QNAME_VALUE:
return rawQName();
default:
throw new IOException("Unhandled QName value type " + valueType);
AugmentationIdentifier readAugmentationIdentifier() throws IOException {
final byte valueType = readByte();
switch (valueType) {
- case TokenTypes.IS_AUGMENT_CODE:
+ case NeonSR2Tokens.IS_AUGMENT_CODE:
return codedAugmentId(readInt());
- case TokenTypes.IS_AUGMENT_VALUE:
+ case NeonSR2Tokens.IS_AUGMENT_VALUE:
return rawAugmentId();
default:
throw new IOException("Unhandled QName value type " + valueType);
// to do that we inter-mingle with readQName()
final byte valueType = readByte();
switch (valueType) {
- case TokenTypes.IS_QNAME_CODE:
+ case NeonSR2Tokens.IS_QNAME_CODE:
return codedNodeIdentifier(readInt());
- case TokenTypes.IS_QNAME_VALUE:
+ case NeonSR2Tokens.IS_QNAME_VALUE:
return rawNodeIdentifier();
default:
throw new IOException("Unhandled QName value type " + valueType);
private QNameModule readModule() throws IOException {
final byte valueType = readByte();
switch (valueType) {
- case TokenTypes.IS_MODULE_CODE:
+ case NeonSR2Tokens.IS_MODULE_CODE:
return codedModule(readInt());
- case TokenTypes.IS_MODULE_VALUE:
+ case NeonSR2Tokens.IS_MODULE_VALUE:
return rawModule();
default:
throw new IOException("Unhandled QName value type " + valueType);
if (value == null) {
// Fresh QName, remember it and emit as three strings
qnameCodeMap.put(qname, qnameCodeMap.size());
- writeByte(TokenTypes.IS_QNAME_VALUE);
+ writeByte(NeonSR2Tokens.IS_QNAME_VALUE);
defaultWriteQName(qname);
} else {
// We have already seen this QName: write its code
- writeByte(TokenTypes.IS_QNAME_CODE);
+ writeByte(NeonSR2Tokens.IS_QNAME_CODE);
writeInt(value);
}
}
if (value == null) {
// Fresh AugmentationIdentifier, remember it and emit as three strings
aidCodeMap.put(aid, aidCodeMap.size());
- writeByte(TokenTypes.IS_AUGMENT_VALUE);
+ writeByte(NeonSR2Tokens.IS_AUGMENT_VALUE);
defaultWriteAugmentationIdentifier(aid);
} else {
// We have already seen this AugmentationIdentifier: write its code
- writeByte(TokenTypes.IS_AUGMENT_CODE);
+ writeByte(NeonSR2Tokens.IS_AUGMENT_CODE);
writeInt(value);
}
}
if (value == null) {
// Fresh QNameModule, remember it and emit as three strings
moduleCodeMap.put(module, moduleCodeMap.size());
- writeByte(TokenTypes.IS_MODULE_VALUE);
+ writeByte(NeonSR2Tokens.IS_MODULE_VALUE);
defaultWriteModule(module);
} else {
// We have already seen this QNameModule: write its code
- writeByte(TokenTypes.IS_MODULE_CODE);
+ writeByte(NeonSR2Tokens.IS_MODULE_CODE);
writeInt(value);
}
}
--- /dev/null
+/*
+ * Copyright (c) 2019 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.controller.cluster.datastore.node.utils.stream;
+
+/**
+ * Tokens used in Neon SR2 encoding. Note that Neon SR2 builds on top of Lithium, hence the token values must never
+ * overlap.
+ */
+final class NeonSR2Tokens {
+ static final byte IS_QNAME_CODE = 4;
+ static final byte IS_QNAME_VALUE = 5;
+ static final byte IS_AUGMENT_CODE = 6;
+ static final byte IS_AUGMENT_VALUE = 7;
+ static final byte IS_MODULE_CODE = 8;
+ static final byte IS_MODULE_VALUE = 9;
+
+ private NeonSR2Tokens() {
+
+ }
+}
* dictionary, too.
*/
static final short NEON_SR2_VERSION = 2;
-
- // Tokens supported in NEON_SR2_VERSION
- static final byte IS_QNAME_CODE = 4;
- static final byte IS_QNAME_VALUE = 5;
- static final byte IS_AUGMENT_CODE = 6;
- static final byte IS_AUGMENT_VALUE = 7;
- static final byte IS_MODULE_CODE = 8;
- static final byte IS_MODULE_VALUE = 9;
}