From 24a8ee436f64a050086b10c934d726623ed14ceb Mon Sep 17 00:00:00 2001 From: Watabiki Naoya Date: Sun, 3 Apr 2011 18:39:41 +0900 Subject: [PATCH] add DateTemplate and BigDecimalTemplate --- .../msgpack/template/BigDecimalTemplate.java | 40 +++++++++++++++++++ .../org/msgpack/template/DateTemplate.java | 40 +++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 java/src/main/java/org/msgpack/template/BigDecimalTemplate.java create mode 100644 java/src/main/java/org/msgpack/template/DateTemplate.java diff --git a/java/src/main/java/org/msgpack/template/BigDecimalTemplate.java b/java/src/main/java/org/msgpack/template/BigDecimalTemplate.java new file mode 100644 index 00000000..6c1a6f9e --- /dev/null +++ b/java/src/main/java/org/msgpack/template/BigDecimalTemplate.java @@ -0,0 +1,40 @@ +package org.msgpack.template; + +import java.io.IOException; +import java.math.BigDecimal; +import org.msgpack.MessagePackObject; +import org.msgpack.MessageTypeException; +import org.msgpack.Packer; +import org.msgpack.Template; +import org.msgpack.Unpacker; + +public class BigDecimalTemplate implements Template { + + @Override + public void pack(Packer pk, Object target) throws IOException { + BigDecimal temp = (BigDecimal) target; + pk.packString(temp.toString()); + } + + @Override + public Object unpack(Unpacker pac, Object to) throws IOException, MessageTypeException { + String temp = pac.unpackString(); + return new BigDecimal(temp); + } + + @Override + public Object convert(MessagePackObject from, Object to) throws MessageTypeException { + String temp = from.asString(); + return new BigDecimal(temp); + } + + static public BigDecimalTemplate getInstance() { + return instance; + } + + static final BigDecimalTemplate instance = new BigDecimalTemplate(); + + static { + TemplateRegistry.register(BigDecimal.class, instance); + } +} diff --git a/java/src/main/java/org/msgpack/template/DateTemplate.java b/java/src/main/java/org/msgpack/template/DateTemplate.java new file mode 100644 index 00000000..95d155ec --- /dev/null +++ b/java/src/main/java/org/msgpack/template/DateTemplate.java @@ -0,0 +1,40 @@ +package org.msgpack.template; + +import java.io.IOException; +import java.util.Date; +import org.msgpack.MessagePackObject; +import org.msgpack.MessageTypeException; +import org.msgpack.Packer; +import org.msgpack.Template; +import org.msgpack.Unpacker; + +public class DateTemplate implements Template { + + @Override + public void pack(Packer pk, Object target) throws IOException { + Date temp = (Date) target; + pk.packLong(temp.getTime()); + } + + @Override + public Object unpack(Unpacker pac, Object to) throws IOException, MessageTypeException { + Long temp = pac.unpackLong(); + return new Date(temp); + } + + @Override + public Object convert(MessagePackObject from, Object to) throws MessageTypeException { + Long temp = from.asLong(); + return new Date(temp); + } + + static public DateTemplate getInstance() { + return instance; + } + + static final DateTemplate instance = new DateTemplate(); + + static { + TemplateRegistry.register(Date.class, instance); + } +}