From 787c24e36acd4fbe6ec837e3e039ff91be22599a Mon Sep 17 00:00:00 2001 From: Tony Tkacik Date: Tue, 7 Apr 2015 16:10:31 +0200 Subject: [PATCH] Moved implementation of (U)Int* codecs to separate classes Change-Id: I589eff7a961d19486529f5d2b5dbc5433988b931 Signed-off-by: Tony Tkacik --- .../data/impl/codec/Int16StringCodec.java | 30 ++++ .../data/impl/codec/Int32StringCodec.java | 30 ++++ .../data/impl/codec/Int64StringCodec.java | 30 ++++ .../yang/data/impl/codec/Int8StringCodec.java | 30 ++++ .../impl/codec/TypeDefinitionAwareCodec.java | 130 ++++-------------- .../data/impl/codec/Uint16StringCodec.java | 29 ++++ .../data/impl/codec/Uint32StringCodec.java | 30 ++++ .../data/impl/codec/Uint64StringCodec.java | 30 ++++ .../data/impl/codec/Uint8StringCodec.java | 30 ++++ 9 files changed, 263 insertions(+), 106 deletions(-) create mode 100644 yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/Int16StringCodec.java create mode 100644 yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/Int32StringCodec.java create mode 100644 yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/Int64StringCodec.java create mode 100644 yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/Int8StringCodec.java create mode 100644 yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/Uint16StringCodec.java create mode 100644 yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/Uint32StringCodec.java create mode 100644 yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/Uint64StringCodec.java create mode 100644 yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/Uint8StringCodec.java diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/Int16StringCodec.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/Int16StringCodec.java new file mode 100644 index 0000000000..f686cc3816 --- /dev/null +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/Int16StringCodec.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2015 Cisco Systems, Inc. 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.yangtools.yang.data.impl.codec; + +import com.google.common.base.Optional; +import org.opendaylight.yangtools.yang.data.api.codec.Int16Codec; +import org.opendaylight.yangtools.yang.model.api.type.IntegerTypeDefinition; + +class Int16StringCodec extends AbstractIntegerStringCodec implements + Int16Codec { + + protected Int16StringCodec(final Optional typeDef) { + super(typeDef, Short.class); + } + + @Override + public final Short deserialize(final String stringRepresentation, final int base) { + return Short.valueOf(stringRepresentation, base); + } + + @Override + public final String serialize(final Short data) { + return data == null ? "" : data.toString(); + } +} \ No newline at end of file diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/Int32StringCodec.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/Int32StringCodec.java new file mode 100644 index 0000000000..b2575c6192 --- /dev/null +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/Int32StringCodec.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2015 Cisco Systems, Inc. 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.yangtools.yang.data.impl.codec; + +import com.google.common.base.Optional; +import org.opendaylight.yangtools.yang.data.api.codec.Int32Codec; +import org.opendaylight.yangtools.yang.model.api.type.IntegerTypeDefinition; + +class Int32StringCodec extends AbstractIntegerStringCodec implements + Int32Codec { + + protected Int32StringCodec(final Optional typeDef) { + super(typeDef, Integer.class); + } + + @Override + public final Integer deserialize(final String stringRepresentation, final int base) { + return Integer.valueOf(stringRepresentation, base); + } + + @Override + public final String serialize(final Integer data) { + return data == null ? "" : data.toString(); + } +} \ No newline at end of file diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/Int64StringCodec.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/Int64StringCodec.java new file mode 100644 index 0000000000..3e6aa678ce --- /dev/null +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/Int64StringCodec.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2015 Cisco Systems, Inc. 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.yangtools.yang.data.impl.codec; + +import com.google.common.base.Optional; +import org.opendaylight.yangtools.yang.data.api.codec.Int64Codec; +import org.opendaylight.yangtools.yang.model.api.type.IntegerTypeDefinition; + +class Int64StringCodec extends AbstractIntegerStringCodec implements + Int64Codec { + + protected Int64StringCodec(final Optional typeDef) { + super(typeDef, Long.class); + } + + @Override + public final Long deserialize(final String stringRepresentation, final int base) { + return Long.valueOf(stringRepresentation, base); + } + + @Override + public final String serialize(final Long data) { + return data == null ? "" : data.toString(); + } +} \ No newline at end of file diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/Int8StringCodec.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/Int8StringCodec.java new file mode 100644 index 0000000000..a475d7afcc --- /dev/null +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/Int8StringCodec.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2015 Cisco Systems, Inc. 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.yangtools.yang.data.impl.codec; + +import com.google.common.base.Optional; +import org.opendaylight.yangtools.yang.data.api.codec.Int8Codec; +import org.opendaylight.yangtools.yang.model.api.type.IntegerTypeDefinition; + +class Int8StringCodec extends AbstractIntegerStringCodec implements + Int8Codec { + + protected Int8StringCodec(final Optional typeDef) { + super(typeDef, Byte.class); + } + + @Override + public final Byte deserialize(final String stringRepresentation, final int base) { + return Byte.valueOf(stringRepresentation, base); + } + + @Override + public String serialize(final Byte data) { + return data == null ? "" : data.toString(); + } +} \ No newline at end of file diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/TypeDefinitionAwareCodec.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/TypeDefinitionAwareCodec.java index 4515669612..f1f30e93de 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/TypeDefinitionAwareCodec.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/TypeDefinitionAwareCodec.java @@ -25,7 +25,6 @@ import com.google.common.collect.ImmutableSet; import com.google.common.collect.Sets; import com.google.common.io.BaseEncoding; import java.math.BigDecimal; -import java.math.BigInteger; import java.util.Set; import javax.xml.bind.DatatypeConverter; import org.opendaylight.yangtools.yang.data.api.codec.BinaryCodec; @@ -34,15 +33,7 @@ import org.opendaylight.yangtools.yang.data.api.codec.BooleanCodec; import org.opendaylight.yangtools.yang.data.api.codec.DecimalCodec; import org.opendaylight.yangtools.yang.data.api.codec.EmptyCodec; import org.opendaylight.yangtools.yang.data.api.codec.EnumCodec; -import org.opendaylight.yangtools.yang.data.api.codec.Int16Codec; -import org.opendaylight.yangtools.yang.data.api.codec.Int32Codec; -import org.opendaylight.yangtools.yang.data.api.codec.Int64Codec; -import org.opendaylight.yangtools.yang.data.api.codec.Int8Codec; import org.opendaylight.yangtools.yang.data.api.codec.StringCodec; -import org.opendaylight.yangtools.yang.data.api.codec.Uint16Codec; -import org.opendaylight.yangtools.yang.data.api.codec.Uint32Codec; -import org.opendaylight.yangtools.yang.data.api.codec.Uint64Codec; -import org.opendaylight.yangtools.yang.data.api.codec.Uint8Codec; import org.opendaylight.yangtools.yang.data.api.codec.UnionCodec; import org.opendaylight.yangtools.yang.model.api.TypeDefinition; import org.opendaylight.yangtools.yang.model.api.type.BinaryTypeDefinition; @@ -197,74 +188,37 @@ public abstract class TypeDefinitionAwareCodec> i } } - public static class Uint8CodecStringImpl extends AbstractIntegerStringCodec - implements Uint8Codec { + @Deprecated + public static class Uint8CodecStringImpl extends Uint8StringCodec { protected Uint8CodecStringImpl(final Optional typeDef) { - super(typeDef, Short.class); - } - - @Override - public String serialize(final Short data) { - return data == null ? "" : data.toString(); - } - - @Override - public Short deserialize(final String stringRepresentation,final int base) { - return Short.valueOf(stringRepresentation, base); + super(typeDef); } } - public static class Uint16CodecStringImpl extends AbstractIntegerStringCodec - implements Uint16Codec { + @Deprecated + public static class Uint16CodecStringImpl extends Uint16StringCodec { protected Uint16CodecStringImpl(final Optional typeDef) { - super(typeDef, Integer.class); - } - - @Override - public Integer deserialize(final String stringRepresentation, final int base) { - return Integer.valueOf(stringRepresentation, base); - } - - @Override - public String serialize(final Integer data) { - return data == null ? "" : data.toString(); + super(typeDef); } } - public static class Uint32CodecStringImpl extends AbstractIntegerStringCodec - implements Uint32Codec { + @Deprecated + public static class Uint32CodecStringImpl extends Uint32StringCodec { protected Uint32CodecStringImpl(final Optional typeDef) { - super(typeDef, Long.class); - } - - @Override - public Long deserialize(final String stringRepresentation, final int base) { - return Long.valueOf(stringRepresentation, base); + super(typeDef); } - @Override - public String serialize(final Long data) { - return data == null ? "" : data.toString(); - } } - public static class Uint64CodecStringImpl extends AbstractIntegerStringCodec implements Uint64Codec { + @Deprecated + public static class Uint64CodecStringImpl extends Uint64StringCodec { protected Uint64CodecStringImpl(final Optional typeDef) { - super(typeDef, BigInteger.class); - } - - @Override - public BigInteger deserialize(final String stringRepresentation, final int base) { - return new BigInteger(stringRepresentation, base); + super(typeDef); } - @Override - public String serialize(final BigInteger data) { - return data == null ? "" : data.toString(); - } } public static class StringCodecStringImpl extends TypeDefinitionAwareCodec implements @@ -285,76 +239,40 @@ public abstract class TypeDefinitionAwareCodec> i } } - public static class Int16CodecStringImpl extends AbstractIntegerStringCodec implements - Int16Codec { + @Deprecated + public static class Int16CodecStringImpl extends Int16StringCodec { protected Int16CodecStringImpl(final Optional typeDef) { - super(typeDef, Short.class); - } - - @Override - public Short deserialize(final String stringRepresentation, final int base) { - return Short.valueOf(stringRepresentation, base); + super(typeDef); } - @Override - public String serialize(final Short data) { - return data == null ? "" : data.toString(); - } } - public static class Int32CodecStringImpl extends AbstractIntegerStringCodec implements - Int32Codec { + @Deprecated + public static class Int32CodecStringImpl extends Int32StringCodec { protected Int32CodecStringImpl(final Optional typeDef) { - super(typeDef, Integer.class); + super(typeDef); } - @Override - public Integer deserialize(final String stringRepresentation, final int base) { - return Integer.valueOf(stringRepresentation, base); - } - - @Override - public String serialize(final Integer data) { - return data == null ? "" : data.toString(); - } } - public static class Int64CodecStringImpl extends AbstractIntegerStringCodec implements - Int64Codec { + @Deprecated + public static class Int64CodecStringImpl extends Int64StringCodec { protected Int64CodecStringImpl(final Optional typeDef) { - super(typeDef, Long.class); + super(typeDef); } - @Override - public Long deserialize(final String stringRepresentation, final int base) { - return Long.valueOf(stringRepresentation, base); - } - - @Override - public String serialize(final Long data) { - return data == null ? "" : data.toString(); - } } - public static class Int8CodecStringImpl extends AbstractIntegerStringCodec implements - Int8Codec { + @Deprecated + public static class Int8CodecStringImpl extends Int8StringCodec { protected Int8CodecStringImpl(final Optional typeDef) { - super(typeDef, Byte.class); + super(typeDef); } - @Override - public Byte deserialize(final String stringRepresentation, final int base) { - return Byte.valueOf(stringRepresentation, base); - } - - @Override - public String serialize(final Byte data) { - return data == null ? "" : data.toString(); - } } public static class EmptyCodecStringImpl extends TypeDefinitionAwareCodec implements diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/Uint16StringCodec.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/Uint16StringCodec.java new file mode 100644 index 0000000000..30480bd44f --- /dev/null +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/Uint16StringCodec.java @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2015 Cisco Systems, Inc. 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.yangtools.yang.data.impl.codec; + +import com.google.common.base.Optional; +import org.opendaylight.yangtools.yang.data.api.codec.Uint16Codec; +import org.opendaylight.yangtools.yang.model.api.type.UnsignedIntegerTypeDefinition; + +class Uint16StringCodec extends AbstractIntegerStringCodec + implements Uint16Codec { + protected Uint16StringCodec(final Optional typeDef) { + super(typeDef, Integer.class); + } + + @Override + public Integer deserialize(final String stringRepresentation, final int base) { + return Integer.valueOf(stringRepresentation, base); + } + + @Override + public String serialize(final Integer data) { + return data == null ? "" : data.toString(); + } +} \ No newline at end of file diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/Uint32StringCodec.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/Uint32StringCodec.java new file mode 100644 index 0000000000..f16d25e668 --- /dev/null +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/Uint32StringCodec.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2015 Cisco Systems, Inc. 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.yangtools.yang.data.impl.codec; + +import com.google.common.base.Optional; +import org.opendaylight.yangtools.yang.data.api.codec.Uint32Codec; +import org.opendaylight.yangtools.yang.model.api.type.UnsignedIntegerTypeDefinition; + +class Uint32StringCodec extends AbstractIntegerStringCodec + implements Uint32Codec { + + protected Uint32StringCodec(final Optional typeDef) { + super(typeDef, Long.class); + } + + @Override + public final Long deserialize(final String stringRepresentation, final int base) { + return Long.valueOf(stringRepresentation, base); + } + + @Override + public final String serialize(final Long data) { + return data == null ? "" : data.toString(); + } +} \ No newline at end of file diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/Uint64StringCodec.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/Uint64StringCodec.java new file mode 100644 index 0000000000..5c98112fb2 --- /dev/null +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/Uint64StringCodec.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2015 Cisco Systems, Inc. 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.yangtools.yang.data.impl.codec; + +import com.google.common.base.Optional; +import java.math.BigInteger; +import org.opendaylight.yangtools.yang.data.api.codec.Uint64Codec; +import org.opendaylight.yangtools.yang.model.api.type.UnsignedIntegerTypeDefinition; + +class Uint64StringCodec extends AbstractIntegerStringCodec implements Uint64Codec { + + protected Uint64StringCodec(final Optional typeDef) { + super(typeDef, BigInteger.class); + } + + @Override + public final BigInteger deserialize(final String stringRepresentation, final int base) { + return new BigInteger(stringRepresentation, base); + } + + @Override + public final String serialize(final BigInteger data) { + return data == null ? "" : data.toString(); + } +} \ No newline at end of file diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/Uint8StringCodec.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/Uint8StringCodec.java new file mode 100644 index 0000000000..62824f71c7 --- /dev/null +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/Uint8StringCodec.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2015 Cisco Systems, Inc. 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.yangtools.yang.data.impl.codec; + +import com.google.common.base.Optional; +import org.opendaylight.yangtools.yang.data.api.codec.Uint8Codec; +import org.opendaylight.yangtools.yang.model.api.type.UnsignedIntegerTypeDefinition; + +class Uint8StringCodec extends AbstractIntegerStringCodec + implements Uint8Codec { + + protected Uint8StringCodec(final Optional typeDef) { + super(typeDef, Short.class); + } + + @Override + public final String serialize(final Short data) { + return data == null ? "" : data.toString(); + } + + @Override + public final Short deserialize(final String stringRepresentation,final int base) { + return Short.valueOf(stringRepresentation, base); + } +} \ No newline at end of file -- 2.36.6