diff --git a/src/com/wentch/redkale/convert/Factory.java b/src/com/wentch/redkale/convert/Factory.java index c4ddf7d06..3fffd1dba 100644 --- a/src/com/wentch/redkale/convert/Factory.java +++ b/src/com/wentch/redkale/convert/Factory.java @@ -16,6 +16,7 @@ import java.net.*; import static com.wentch.redkale.convert.ext.InetAddressSimpledCoder.*; import java.util.*; import java.util.concurrent.*; +import java.util.regex.*; /** * @@ -87,6 +88,7 @@ public abstract class Factory { this.register(Class.class, TypeSimpledCoder.instance); this.register(InetSocketAddress.class, InetSocketAddressSimpledCoder.instance); this.register(InetSocketAddress.class, InetSocketAddressSimpledCoder.instance); + this.register(Pattern.class, PatternSimpledCoder.instance); //--------------------------------------------------------- this.register(boolean[].class, BoolArraySimpledCoder.instance); this.register(byte[].class, ByteArraySimpledCoder.instance); diff --git a/src/com/wentch/redkale/convert/ext/PatternSimpledCoder.java b/src/com/wentch/redkale/convert/ext/PatternSimpledCoder.java new file mode 100644 index 000000000..a225ff9cf --- /dev/null +++ b/src/com/wentch/redkale/convert/ext/PatternSimpledCoder.java @@ -0,0 +1,38 @@ +/* + * 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 com.wentch.redkale.convert.ext; + +import com.wentch.redkale.convert.*; +import java.util.regex.*; + +/** + * + * @author zhangjx + * @param + * @param + */ +public class PatternSimpledCoder extends SimpledCoder { + + public static final PatternSimpledCoder instance = new PatternSimpledCoder(); + + @Override + public void convertTo(W out, Pattern value) { + if (value == null) { + out.writeNull(); + } else { + out.writeString(value.flags() + "," + value.pattern()); + } + } + + @Override + public Pattern convertFrom(R in) { + String value = in.readString(); + if (value == null) return null; + int pos = value.indexOf(','); + return Pattern.compile(value.substring(pos + 1), Integer.parseInt(value.substring(0, pos))); + } + +}