We can only ever pass nulls from Revision encoding, refactor to
make that clear (and enforced) in code. This more clearly defines
the context of TokenTypes.IS_NULL_VALUE and where it can be emitted.
Change-Id: I14045c9fc3eaf04b4bde858d322de45d3160de26
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
*/
package org.opendaylight.controller.cluster.datastore.node.utils.stream;
*/
package org.opendaylight.controller.cluster.datastore.node.utils.stream;
+import static com.google.common.base.Verify.verifyNotNull;
import static java.util.Objects.requireNonNull;
import com.google.common.annotations.VisibleForTesting;
import static java.util.Objects.requireNonNull;
import com.google.common.annotations.VisibleForTesting;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
+import java.util.Optional;
+import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.common.Empty;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.common.QNameModule;
import org.opendaylight.yangtools.yang.common.Empty;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.common.QNameModule;
final void defaultWriteModule(final QNameModule module) throws IOException {
writeString(module.getNamespace().toString());
final void defaultWriteModule(final QNameModule module) throws IOException {
writeString(module.getNamespace().toString());
- writeString(module.getRevision().map(Revision::toString).orElse(null));
+ final Optional<Revision> revision = module.getRevision();
+ if (revision.isPresent()) {
+ writeString(revision.get().toString());
+ } else {
+ writeByte(TokenTypes.IS_NULL_VALUE);
+ }
- protected final void writeString(final String string) throws IOException {
- if (string != null) {
- final Integer value = stringCodeMap.get(string);
- if (value == null) {
- stringCodeMap.put(string, stringCodeMap.size());
- writeByte(TokenTypes.IS_STRING_VALUE);
- writeUTF(string);
- } else {
- writeByte(TokenTypes.IS_CODE_VALUE);
- writeInt(value);
- }
+ protected final void writeString(final @NonNull String string) throws IOException {
+ final Integer value = stringCodeMap.get(verifyNotNull(string));
+ if (value == null) {
+ stringCodeMap.put(string, stringCodeMap.size());
+ writeByte(TokenTypes.IS_STRING_VALUE);
+ writeUTF(string);
- writeByte(TokenTypes.IS_NULL_VALUE);
+ writeByte(TokenTypes.IS_CODE_VALUE);
+ writeInt(value);
protected abstract short streamVersion();
protected abstract short streamVersion();
- protected abstract void writeString(String string) throws IOException;
+ abstract void writeString(@NonNull String string) throws IOException;
@Override
public final void write(final int value) throws IOException {
@Override
public final void write(final int value) throws IOException {