From bd7cfec55803f40773eda2412e7b93a3fefd3f9c Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 20 Sep 2019 19:42:15 +0200 Subject: [PATCH] Move Neon SR2 tokens into its own class Same as with base Lithium tokens, these can create confusion about where they are used. Make sure we encapsulate them in their own class, so no confusion ensues. JIRA: CONTROLLER-1919 Change-Id: I197b9118a5d9a09562db0a899bb6b8dc0dfae28b Signed-off-by: Robert Varga --- ...eonSR2NormalizedNodeInputStreamReader.java | 16 ++++++------ ...onSR2NormalizedNodeOutputStreamWriter.java | 12 ++++----- .../node/utils/stream/NeonSR2Tokens.java | 25 +++++++++++++++++++ .../node/utils/stream/TokenTypes.java | 8 ------ 4 files changed, 39 insertions(+), 22 deletions(-) create mode 100644 opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/stream/NeonSR2Tokens.java diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/stream/NeonSR2NormalizedNodeInputStreamReader.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/stream/NeonSR2NormalizedNodeInputStreamReader.java index fb38fa4823..80ec1b01a0 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/stream/NeonSR2NormalizedNodeInputStreamReader.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/stream/NeonSR2NormalizedNodeInputStreamReader.java @@ -42,9 +42,9 @@ final class NeonSR2NormalizedNodeInputStreamReader extends AbstractLithiumDataIn 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); @@ -55,9 +55,9 @@ final class NeonSR2NormalizedNodeInputStreamReader extends AbstractLithiumDataIn 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); @@ -70,9 +70,9 @@ final class NeonSR2NormalizedNodeInputStreamReader extends AbstractLithiumDataIn // 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); @@ -82,9 +82,9 @@ final class NeonSR2NormalizedNodeInputStreamReader extends AbstractLithiumDataIn 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); diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/stream/NeonSR2NormalizedNodeOutputStreamWriter.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/stream/NeonSR2NormalizedNodeOutputStreamWriter.java index 43bcc34523..010b220924 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/stream/NeonSR2NormalizedNodeOutputStreamWriter.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/stream/NeonSR2NormalizedNodeOutputStreamWriter.java @@ -49,11 +49,11 @@ final class NeonSR2NormalizedNodeOutputStreamWriter extends AbstractLithiumDataO 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); } } @@ -64,11 +64,11 @@ final class NeonSR2NormalizedNodeOutputStreamWriter extends AbstractLithiumDataO 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); } } @@ -79,11 +79,11 @@ final class NeonSR2NormalizedNodeOutputStreamWriter extends AbstractLithiumDataO 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); } } diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/stream/NeonSR2Tokens.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/stream/NeonSR2Tokens.java new file mode 100644 index 0000000000..9126747b4b --- /dev/null +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/stream/NeonSR2Tokens.java @@ -0,0 +1,25 @@ +/* + * 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() { + + } +} diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/stream/TokenTypes.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/stream/TokenTypes.java index 8fc7d6d55b..43082affe1 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/stream/TokenTypes.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/stream/TokenTypes.java @@ -23,12 +23,4 @@ final class TokenTypes { * 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; } -- 2.36.6