From aa3ade5912bfff21749c1d6cb6ccb9d602d462de Mon Sep 17 00:00:00 2001 From: Redkale <22250530@qq.com> Date: Wed, 20 Dec 2017 18:45:14 +0800 Subject: [PATCH] =?UTF-8?q?Convert=E5=A2=9E=E5=8A=A0AtomicIntegerSimpledCo?= =?UTF-8?q?der?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/org/redkale/convert/ConvertFactory.java | 3 +- .../ext/AtomicIntegerSimpledCoder.java | 35 +++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 src/org/redkale/convert/ext/AtomicIntegerSimpledCoder.java diff --git a/src/org/redkale/convert/ConvertFactory.java b/src/org/redkale/convert/ConvertFactory.java index bff2013cc..961bc68a3 100644 --- a/src/org/redkale/convert/ConvertFactory.java +++ b/src/org/redkale/convert/ConvertFactory.java @@ -13,7 +13,7 @@ import java.nio.ByteBuffer; import java.nio.channels.CompletionHandler; import java.util.*; import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.atomic.*; import java.util.regex.Pattern; import java.util.stream.*; import org.redkale.convert.ext.*; @@ -88,6 +88,7 @@ public abstract class ConvertFactory { this.register(String.class, StringSimpledCoder.instance); this.register(CharSequence.class, CharSequenceSimpledCoder.instance); this.register(java.util.Date.class, DateSimpledCoder.instance); + this.register(AtomicInteger.class, AtomicIntegerSimpledCoder.instance); this.register(AtomicLong.class, AtomicLongSimpledCoder.instance); this.register(BigInteger.class, BigIntegerSimpledCoder.instance); this.register(BigDecimal.class, BigDecimalSimpledCoder.instance); diff --git a/src/org/redkale/convert/ext/AtomicIntegerSimpledCoder.java b/src/org/redkale/convert/ext/AtomicIntegerSimpledCoder.java new file mode 100644 index 000000000..29b879e6e --- /dev/null +++ b/src/org/redkale/convert/ext/AtomicIntegerSimpledCoder.java @@ -0,0 +1,35 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package org.redkale.convert.ext; + +import java.util.concurrent.atomic.AtomicInteger; +import org.redkale.convert.*; + +/** + * AtomicInteger 的SimpledCoder实现 + * + *

+ * 详情见: https://redkale.org + * + * @author zhangjx + * @param Reader输入的子类型 + * @param Writer输出的子类型 + */ +public class AtomicIntegerSimpledCoder extends SimpledCoder { + + public static final AtomicIntegerSimpledCoder instance = new AtomicIntegerSimpledCoder(); + + @Override + public void convertTo(W out, AtomicInteger value) { + out.writeInt(value == null ? 0 : value.get()); + } + + @Override + public AtomicInteger convertFrom(R in) { + return new AtomicInteger(in.readInt()); + } + +}