diff options
Diffstat (limited to 'config-lib/src/main/java/com/yahoo/config/IntegerNode.java')
-rw-r--r-- | config-lib/src/main/java/com/yahoo/config/IntegerNode.java | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/config-lib/src/main/java/com/yahoo/config/IntegerNode.java b/config-lib/src/main/java/com/yahoo/config/IntegerNode.java new file mode 100644 index 00000000000..82db4cab030 --- /dev/null +++ b/config-lib/src/main/java/com/yahoo/config/IntegerNode.java @@ -0,0 +1,52 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.config; + +import edu.umd.cs.findbugs.annotations.NonNull; + +/** + * The IntegerNode class represents an integer in a configuration tree. + */ +public class IntegerNode extends LeafNode<Integer> { + + public IntegerNode() { + } + + public IntegerNode(int value) { + super(true); + this.value = value; + } + + public Integer value() { + return value; + } + + @Override + public String getValue() { + return "" + value; + } + + @Override + public String toString() { + return getValue(); + } + + @Override + protected boolean doSetValue(@NonNull String value) { + try { + this.value = Integer.parseInt(value); + return true; + } catch (NumberFormatException e) { + return false; + } + } + + @Override + void serialize(String name, Serializer serializer) { + serializer.serialize(name, value); + } + + @Override + void serialize(Serializer serializer) { + serializer.serialize(value); + } +} |