diff --git a/android-jdk6-redkale/src/javax/annotation/Resource.java b/android-jdk6-redkale/src/javax/annotation/Resource.java
new file mode 100644
index 000000000..3b8963bc9
--- /dev/null
+++ b/android-jdk6-redkale/src/javax/annotation/Resource.java
@@ -0,0 +1,132 @@
+/*
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package javax.annotation;
+
+import java.lang.annotation.*;
+import static java.lang.annotation.ElementType.*;
+import static java.lang.annotation.RetentionPolicy.*;
+
+/**
+ * The Resource annotation marks a resource that is needed
+ * by the application. This annotation may be applied to an
+ * application component class, or to fields or methods of the
+ * component class. When the annotation is applied to a
+ * field or method, the container will inject an instance
+ * of the requested resource into the application component
+ * when the component is initialized. If the annotation is
+ * applied to the component class, the annotation declares a
+ * resource that the application will look up at runtime.
+ *
+ * Even though this annotation is not marked Inherited, deployment
+ * tools are required to examine all superclasses of any component
+ * class to discover all uses of this annotation in all superclasses.
+ * All such annotation instances specify resources that are needed
+ * by the application component. Note that this annotation may
+ * appear on private fields and methods of superclasses; the container
+ * is required to perform injection in these cases as well.
+ *
+ * @since Common Annotations 1.0
+ */
+@Target({TYPE, FIELD, METHOD})
+@Retention(RUNTIME)
+public @interface Resource {
+ /**
+ * The JNDI name of the resource. For field annotations,
+ * the default is the field name. For method annotations,
+ * the default is the JavaBeans property name corresponding
+ * to the method. For class annotations, there is no default
+ * and this must be specified.
+ */
+ String name() default "";
+
+ /**
+ * The name of the resource that the reference points to. It can
+ * link to any compatible resource using the global JNDI names.
+ *
+ * @since Common Annotations 1.1
+ */
+
+ String lookup() default "";
+
+ /**
+ * The Java type of the resource. For field annotations,
+ * the default is the type of the field. For method annotations,
+ * the default is the type of the JavaBeans property.
+ * For class annotations, there is no default and this must be
+ * specified.
+ */
+ Class> type() default java.lang.Object.class;
+
+ /**
+ * The two possible authentication types for a resource.
+ */
+ enum AuthenticationType {
+ CONTAINER,
+ APPLICATION
+ }
+
+ /**
+ * The authentication type to use for this resource.
+ * This may be specified for resources representing a
+ * connection factory of any supported type, and must
+ * not be specified for resources of other types.
+ */
+ AuthenticationType authenticationType() default AuthenticationType.CONTAINER;
+
+ /**
+ * Indicates whether this resource can be shared between
+ * this component and other components.
+ * This may be specified for resources representing a
+ * connection factory of any supported type, and must
+ * not be specified for resources of other types.
+ */
+ boolean shareable() default true;
+
+ /**
+ * A product specific name that this resource should be mapped to.
+ * The name of this resource, as defined by the name
+ * element or defaulted, is a name that is local to the application
+ * component using the resource. (It's a name in the JNDI
+ * java:comp/env namespace.) Many application servers
+ * provide a way to map these local names to names of resources
+ * known to the application server. This mapped name is often a
+ * global JNDI name, but may be a name of any form.
+ *
+ * Application servers are not required to support any particular
+ * form or type of mapped name, nor the ability to use mapped names.
+ * The mapped name is product-dependent and often installation-dependent.
+ * No use of a mapped name is portable.
+ */
+ String mappedName() default "";
+
+ /**
+ * Description of this resource. The description is expected
+ * to be in the default language of the system on which the
+ * application is deployed. The description can be presented
+ * to the Deployer to help in choosing the correct resource.
+ */
+ String description() default "";
+}
diff --git a/android-jdk6-redkale/src/org/redkale/convert/AnyEncoder.java b/android-jdk6-redkale/src/org/redkale/convert/AnyEncoder.java
index 72685f9a8..c99d155c2 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/AnyEncoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/AnyEncoder.java
@@ -10,6 +10,7 @@ import java.lang.reflect.Type;
/**
* 对不明类型的对象进行序列化; BSON序列化时将对象的类名写入Writer,JSON则不写入。
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
*/
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ArrayDecoder.java b/android-jdk6-redkale/src/org/redkale/convert/ArrayDecoder.java
index 4259402d4..2d7541ac8 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ArrayDecoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ArrayDecoder.java
@@ -13,6 +13,7 @@ import java.util.*;
* 数组长度不能超过 32767。 在BSON中数组长度设定的是short,对于大于32767长度的数组传输会影响性能,所以没有采用int存储。
* 支持一定程度的泛型。
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
*/
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ArrayEncoder.java b/android-jdk6-redkale/src/org/redkale/convert/ArrayEncoder.java
index 31421784c..d3e7f90a6 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ArrayEncoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ArrayEncoder.java
@@ -9,9 +9,10 @@ import java.lang.reflect.*;
/**
* 对象数组的反序列化,不包含int[]、long[]这样的primitive class数组.
- * 数组长度不能超过 32767。 在BSON中数组长度设定的是short,对于大于32767长度的数组传输会影响性能,所以没有采用int存储。
+ * 数组长度不能超过 32767。 在BSON中数组长度设定的是short,对于大于32767长度的数组传输会影响性能,所以没有必要采用int存储。
* 支持一定程度的泛型。
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
*/
diff --git a/android-jdk6-redkale/src/org/redkale/convert/CollectionDecoder.java b/android-jdk6-redkale/src/org/redkale/convert/CollectionDecoder.java
index 95d7613e7..073794650 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/CollectionDecoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/CollectionDecoder.java
@@ -15,6 +15,7 @@ import java.util.Collection;
* 集合大小不能超过 32767。 在BSON中集合大小设定的是short,对于大于32767长度的集合传输会影响性能,所以没有采用int存储。
* 支持一定程度的泛型。
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
*/
diff --git a/android-jdk6-redkale/src/org/redkale/convert/CollectionEncoder.java b/android-jdk6-redkale/src/org/redkale/convert/CollectionEncoder.java
index fe6206d17..46d901068 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/CollectionEncoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/CollectionEncoder.java
@@ -13,6 +13,7 @@ import java.util.Collection;
* 集合大小不能超过 32767。 在BSON中集合大小设定的是short,对于大于32767长度的集合传输会影响性能,所以没有采用int存储。
* 支持一定程度的泛型。
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
*/
diff --git a/android-jdk6-redkale/src/org/redkale/convert/Convert.java b/android-jdk6-redkale/src/org/redkale/convert/Convert.java
index 5e93b5f37..f63681e23 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/Convert.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/Convert.java
@@ -8,6 +8,7 @@ package org.redkale.convert;
/**
* 序列化操作类
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ConvertColumn.java b/android-jdk6-redkale/src/org/redkale/convert/ConvertColumn.java
index 974b0db73..336734898 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ConvertColumn.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ConvertColumn.java
@@ -12,6 +12,7 @@ import static java.lang.annotation.RetentionPolicy.*;
/**
* 依附在setter、getter方法、字段进行简单的配置
*
+ * @see http://www.redkale.org
* @author zhangjx
*/
@Inherited
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ConvertColumnEntry.java b/android-jdk6-redkale/src/org/redkale/convert/ConvertColumnEntry.java
index 273139d26..08bbe6d70 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ConvertColumnEntry.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ConvertColumnEntry.java
@@ -8,6 +8,7 @@ package org.redkale.convert;
/**
* ConvertColumn 对应的实体类
*
+ * @see http://www.redkale.org
* @author zhangjx
*/
public final class ConvertColumnEntry {
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ConvertColumns.java b/android-jdk6-redkale/src/org/redkale/convert/ConvertColumns.java
index 9e4fbb4eb..1c62d5539 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ConvertColumns.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ConvertColumns.java
@@ -12,6 +12,7 @@ import static java.lang.annotation.RetentionPolicy.*;
/**
* ConvertColumn 的多用类
*
+ * @see http://www.redkale.org
* @author zhangjx
*/
@Inherited
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ConvertEntity.java b/android-jdk6-redkale/src/org/redkale/convert/ConvertEntity.java
index 6449df6cd..329c8440c 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ConvertEntity.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ConvertEntity.java
@@ -13,6 +13,7 @@ import static java.lang.annotation.RetentionPolicy.RUNTIME;
* 用于类名的别名, 类似javax.persistence.Table
* 该值必须是全局唯一
*
+ * @see http://www.redkale.org
* @author zhangjx
*/
@Inherited
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ConvertException.java b/android-jdk6-redkale/src/org/redkale/convert/ConvertException.java
index 4fdc3f6ce..0d45e0829 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ConvertException.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ConvertException.java
@@ -6,6 +6,7 @@ package org.redkale.convert;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
*/
public class ConvertException extends RuntimeException {
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ConvertType.java b/android-jdk6-redkale/src/org/redkale/convert/ConvertType.java
index e079007d6..15d0833c5 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ConvertType.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ConvertType.java
@@ -7,6 +7,7 @@ package org.redkale.convert;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
*/
public enum ConvertType {
diff --git a/android-jdk6-redkale/src/org/redkale/convert/DeMember.java b/android-jdk6-redkale/src/org/redkale/convert/DeMember.java
index 75de5e173..6e31ce2df 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/DeMember.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/DeMember.java
@@ -9,6 +9,7 @@ import org.redkale.util.Attribute;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
diff --git a/android-jdk6-redkale/src/org/redkale/convert/Decodeable.java b/android-jdk6-redkale/src/org/redkale/convert/Decodeable.java
index a3c02cec1..6dbc8458b 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/Decodeable.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/Decodeable.java
@@ -9,6 +9,7 @@ import java.lang.reflect.Type;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
diff --git a/android-jdk6-redkale/src/org/redkale/convert/EnMember.java b/android-jdk6-redkale/src/org/redkale/convert/EnMember.java
index 5d2c24b57..99f2cd667 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/EnMember.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/EnMember.java
@@ -9,6 +9,7 @@ import org.redkale.util.Attribute;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
diff --git a/android-jdk6-redkale/src/org/redkale/convert/Encodeable.java b/android-jdk6-redkale/src/org/redkale/convert/Encodeable.java
index 9d5f1eb29..4b95c8d01 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/Encodeable.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/Encodeable.java
@@ -9,6 +9,7 @@ import java.lang.reflect.Type;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
diff --git a/android-jdk6-redkale/src/org/redkale/convert/Factory.java b/android-jdk6-redkale/src/org/redkale/convert/Factory.java
index 1e29ec078..b8b308a84 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/Factory.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/Factory.java
@@ -12,15 +12,16 @@ import java.lang.reflect.*;
import java.math.BigInteger;
import java.net.*;
import static org.redkale.convert.ext.InetAddressSimpledCoder.*;
-import org.redkale.util.Creator.Creators;
import java.util.*;
import java.util.concurrent.*;
import java.util.regex.*;
import org.redkale.convert.ext.*;
import org.redkale.util.*;
+import org.redkale.util.Creator.Creators;
/**
- *
+ *
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
diff --git a/android-jdk6-redkale/src/org/redkale/convert/HashedMap.java b/android-jdk6-redkale/src/org/redkale/convert/HashedMap.java
index f30dd9385..a0f8db5a9 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/HashedMap.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/HashedMap.java
@@ -9,6 +9,7 @@ import java.lang.reflect.*;
/**
* 只增不减的伪Map类
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
@@ -44,8 +45,9 @@ public final class HashedMap {
Entry entry = data[index];
while (entry != null) {
if (k == entry.key) {
+ V old = entry.value;
entry.value = value;
- return entry.value;
+ return old;
}
entry = entry.next;
}
diff --git a/android-jdk6-redkale/src/org/redkale/convert/MapDecoder.java b/android-jdk6-redkale/src/org/redkale/convert/MapDecoder.java
index 8dc6bd6e6..addecb82d 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/MapDecoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/MapDecoder.java
@@ -12,6 +12,7 @@ import java.util.Map;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
diff --git a/android-jdk6-redkale/src/org/redkale/convert/MapEncoder.java b/android-jdk6-redkale/src/org/redkale/convert/MapEncoder.java
index c8ba007e4..544100d71 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/MapEncoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/MapEncoder.java
@@ -11,6 +11,7 @@ import java.util.Map;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ObjectDecoder.java b/android-jdk6-redkale/src/org/redkale/convert/ObjectDecoder.java
index ebe16a2e0..5118c925f 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ObjectDecoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ObjectDecoder.java
@@ -15,6 +15,7 @@ import java.util.concurrent.atomic.AtomicInteger;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ObjectEncoder.java b/android-jdk6-redkale/src/org/redkale/convert/ObjectEncoder.java
index 897fb8051..87d75aee1 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ObjectEncoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ObjectEncoder.java
@@ -6,12 +6,13 @@
package org.redkale.convert;
import org.redkale.util.Attribute;
-import org.redkale.util.Attribute.Attributes;
import java.lang.reflect.*;
import java.util.*;
+import org.redkale.util.Attribute.Attributes;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
diff --git a/android-jdk6-redkale/src/org/redkale/convert/Reader.java b/android-jdk6-redkale/src/org/redkale/convert/Reader.java
index 743474ac4..fb6114d5d 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/Reader.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/Reader.java
@@ -9,6 +9,7 @@ import java.util.concurrent.atomic.AtomicInteger;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
*/
public interface Reader {
diff --git a/android-jdk6-redkale/src/org/redkale/convert/SimpledCoder.java b/android-jdk6-redkale/src/org/redkale/convert/SimpledCoder.java
index fef1ec2cc..645befaf9 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/SimpledCoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/SimpledCoder.java
@@ -10,6 +10,7 @@ import java.lang.reflect.Type;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
diff --git a/android-jdk6-redkale/src/org/redkale/convert/Writer.java b/android-jdk6-redkale/src/org/redkale/convert/Writer.java
index 4da8710b8..e295d60a1 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/Writer.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/Writer.java
@@ -9,6 +9,7 @@ import org.redkale.util.Attribute;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
*/
public interface Writer {
diff --git a/android-jdk6-redkale/src/org/redkale/convert/bson/BsonByteBufferWriter.java b/android-jdk6-redkale/src/org/redkale/convert/bson/BsonByteBufferWriter.java
index ba724bbc1..0cc0b5c04 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/bson/BsonByteBufferWriter.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/bson/BsonByteBufferWriter.java
@@ -10,6 +10,7 @@ import java.util.function.*;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
*/
public final class BsonByteBufferWriter extends BsonWriter {
diff --git a/android-jdk6-redkale/src/org/redkale/convert/bson/BsonConvert.java b/android-jdk6-redkale/src/org/redkale/convert/bson/BsonConvert.java
index 38618f675..f60a23b33 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/bson/BsonConvert.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/bson/BsonConvert.java
@@ -29,6 +29,7 @@ import org.redkale.util.*;
* 5. SIGN_NONEXT 标记位,值固定为0 (byte)
* 6. SIGN_OBJECTE 标记位,值固定为0xEE (short)
*
+ * @see http://www.redkale.org
* @author zhangjx
*/
public final class BsonConvert extends Convert {
diff --git a/android-jdk6-redkale/src/org/redkale/convert/bson/BsonFactory.java b/android-jdk6-redkale/src/org/redkale/convert/bson/BsonFactory.java
index 7b2dba377..ecf3a15ee 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/bson/BsonFactory.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/bson/BsonFactory.java
@@ -10,6 +10,7 @@ import org.redkale.convert.*;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
*/
public final class BsonFactory extends Factory {
diff --git a/android-jdk6-redkale/src/org/redkale/convert/bson/BsonReader.java b/android-jdk6-redkale/src/org/redkale/convert/bson/BsonReader.java
index 5596e7677..57fda8155 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/bson/BsonReader.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/bson/BsonReader.java
@@ -14,6 +14,7 @@ import org.redkale.util.*;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
*/
public final class BsonReader implements Reader {
diff --git a/android-jdk6-redkale/src/org/redkale/convert/bson/BsonSimpledCoder.java b/android-jdk6-redkale/src/org/redkale/convert/bson/BsonSimpledCoder.java
index 2a4e5950f..8304be26e 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/bson/BsonSimpledCoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/bson/BsonSimpledCoder.java
@@ -9,6 +9,7 @@ import org.redkale.convert.SimpledCoder;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
*/
diff --git a/android-jdk6-redkale/src/org/redkale/convert/bson/BsonWriter.java b/android-jdk6-redkale/src/org/redkale/convert/bson/BsonWriter.java
index c10e2f204..895b5525d 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/bson/BsonWriter.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/bson/BsonWriter.java
@@ -12,6 +12,7 @@ import org.redkale.util.*;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
*/
public class BsonWriter implements Writer {
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ext/BigIntegerSimpledCoder.java b/android-jdk6-redkale/src/org/redkale/convert/ext/BigIntegerSimpledCoder.java
index 8a6dd5284..f9d076cdf 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ext/BigIntegerSimpledCoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ext/BigIntegerSimpledCoder.java
@@ -12,6 +12,7 @@ import java.math.BigInteger;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ext/BoolArraySimpledCoder.java b/android-jdk6-redkale/src/org/redkale/convert/ext/BoolArraySimpledCoder.java
index bf9f2e2c2..821e74974 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ext/BoolArraySimpledCoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ext/BoolArraySimpledCoder.java
@@ -11,6 +11,7 @@ import org.redkale.convert.Writer;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
@@ -38,9 +39,8 @@ public final class BoolArraySimpledCoder ext
@Override
public boolean[] convertFrom(R in) {
int len = in.readArrayB();
- if (len == Reader.SIGN_NULL) {
- return null;
- } else if (len == Reader.SIGN_NOLENGTH) {
+ if (len == Reader.SIGN_NULL) return null;
+ if (len == Reader.SIGN_NOLENGTH) {
int size = 0;
boolean[] data = new boolean[8];
while (in.hasNext()) {
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ext/BoolSimpledCoder.java b/android-jdk6-redkale/src/org/redkale/convert/ext/BoolSimpledCoder.java
index e25feca7d..90157a266 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ext/BoolSimpledCoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ext/BoolSimpledCoder.java
@@ -11,6 +11,7 @@ import org.redkale.convert.Writer;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ext/ByteArraySimpledCoder.java b/android-jdk6-redkale/src/org/redkale/convert/ext/ByteArraySimpledCoder.java
index d642e726c..7349117f7 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ext/ByteArraySimpledCoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ext/ByteArraySimpledCoder.java
@@ -11,6 +11,7 @@ import org.redkale.convert.Writer;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
@@ -38,9 +39,8 @@ public final class ByteArraySimpledCoder ext
@Override
public byte[] convertFrom(R in) {
int len = in.readArrayB();
- if (len == Reader.SIGN_NULL) {
- return null;
- } else if (len == Reader.SIGN_NOLENGTH) {
+ if (len == Reader.SIGN_NULL) return null;
+ if (len == Reader.SIGN_NOLENGTH) {
int size = 0;
byte[] data = new byte[8];
while (in.hasNext()) {
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ext/ByteSimpledCoder.java b/android-jdk6-redkale/src/org/redkale/convert/ext/ByteSimpledCoder.java
index 74861c7a8..9042c29a1 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ext/ByteSimpledCoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ext/ByteSimpledCoder.java
@@ -11,6 +11,7 @@ import org.redkale.convert.Writer;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ext/CharArraySimpledCoder.java b/android-jdk6-redkale/src/org/redkale/convert/ext/CharArraySimpledCoder.java
index efac0785f..14ab2e881 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ext/CharArraySimpledCoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ext/CharArraySimpledCoder.java
@@ -11,6 +11,7 @@ import org.redkale.convert.Writer;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
@@ -38,9 +39,8 @@ public final class CharArraySimpledCoder ext
@Override
public char[] convertFrom(R in) {
int len = in.readArrayB();
- if (len == Reader.SIGN_NULL) {
- return null;
- } else if (len == Reader.SIGN_NOLENGTH) {
+ if (len == Reader.SIGN_NULL) return null;
+ if (len == Reader.SIGN_NOLENGTH) {
int size = 0;
char[] data = new char[8];
while (in.hasNext()) {
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ext/CharSimpledCoder.java b/android-jdk6-redkale/src/org/redkale/convert/ext/CharSimpledCoder.java
index 8e3803945..747b2760a 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ext/CharSimpledCoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ext/CharSimpledCoder.java
@@ -12,6 +12,7 @@ import org.redkale.convert.Writer;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ext/DLongSimpledCoder.java b/android-jdk6-redkale/src/org/redkale/convert/ext/DLongSimpledCoder.java
index 9df4bb726..d0f8844d5 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ext/DLongSimpledCoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ext/DLongSimpledCoder.java
@@ -8,16 +8,19 @@ package org.redkale.convert.ext;
import org.redkale.convert.Reader;
import org.redkale.convert.Writer;
import org.redkale.convert.SimpledCoder;
-import org.redkale.util.DLong;
+import org.redkale.util.*;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
*/
public final class DLongSimpledCoder extends SimpledCoder {
+ private static final ByteArraySimpledCoder bsSimpledCoder = ByteArraySimpledCoder.instance;
+
public static final DLongSimpledCoder instance = new DLongSimpledCoder();
@Override
@@ -25,16 +28,15 @@ public final class DLongSimpledCoder extends
if (value == null) {
out.writeNull();
} else {
- out.writeSmallString(value.getFirst() + "_" + value.getSecond());
+ bsSimpledCoder.convertTo(out, value.directBytes());
}
}
@Override
public DLong convertFrom(R in) {
- String str = in.readString();
- if (str == null) return null;
- int pos = str.indexOf('_');
- return new DLong(Long.parseLong(str.substring(0, pos)), Long.parseLong(str.substring(pos + 1)));
+ byte[] bs = bsSimpledCoder.convertFrom(in);
+ if (bs == null) return null;
+ return new DLong(bs);
}
}
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ext/DateSimpledCoder.java b/android-jdk6-redkale/src/org/redkale/convert/ext/DateSimpledCoder.java
index d884167e4..1da0f693d 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ext/DateSimpledCoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ext/DateSimpledCoder.java
@@ -12,6 +12,7 @@ import java.util.Date;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ext/DoubleArraySimpledCoder.java b/android-jdk6-redkale/src/org/redkale/convert/ext/DoubleArraySimpledCoder.java
index 9005ab25d..cd36fd6a7 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ext/DoubleArraySimpledCoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ext/DoubleArraySimpledCoder.java
@@ -11,6 +11,7 @@ import org.redkale.convert.Writer;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
@@ -38,9 +39,8 @@ public final class DoubleArraySimpledCoder e
@Override
public double[] convertFrom(R in) {
int len = in.readArrayB();
- if (len == Reader.SIGN_NULL) {
- return null;
- } else if (len == Reader.SIGN_NOLENGTH) {
+ if (len == Reader.SIGN_NULL) return null;
+ if (len == Reader.SIGN_NOLENGTH) {
int size = 0;
double[] data = new double[8];
while (in.hasNext()) {
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ext/DoubleSimpledCoder.java b/android-jdk6-redkale/src/org/redkale/convert/ext/DoubleSimpledCoder.java
index 613877115..5b864c6ef 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ext/DoubleSimpledCoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ext/DoubleSimpledCoder.java
@@ -11,6 +11,7 @@ import org.redkale.convert.Writer;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ext/EnumSimpledCoder.java b/android-jdk6-redkale/src/org/redkale/convert/ext/EnumSimpledCoder.java
index aa6b0ee10..a988088bd 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ext/EnumSimpledCoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ext/EnumSimpledCoder.java
@@ -11,6 +11,7 @@ import org.redkale.convert.Writer;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ext/FloatArraySimpledCoder.java b/android-jdk6-redkale/src/org/redkale/convert/ext/FloatArraySimpledCoder.java
index 84eaf45f8..e3664a4ad 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ext/FloatArraySimpledCoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ext/FloatArraySimpledCoder.java
@@ -11,6 +11,7 @@ import org.redkale.convert.Writer;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
@@ -38,9 +39,8 @@ public final class FloatArraySimpledCoder ex
@Override
public float[] convertFrom(R in) {
int len = in.readArrayB();
- if (len == Reader.SIGN_NULL) {
- return null;
- } else if (len == Reader.SIGN_NOLENGTH) {
+ if (len == Reader.SIGN_NULL) return null;
+ if (len == Reader.SIGN_NOLENGTH) {
int size = 0;
float[] data = new float[8];
while (in.hasNext()) {
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ext/FloatSimpledCoder.java b/android-jdk6-redkale/src/org/redkale/convert/ext/FloatSimpledCoder.java
index 265eddbeb..65c86c5dc 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ext/FloatSimpledCoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ext/FloatSimpledCoder.java
@@ -11,6 +11,7 @@ import org.redkale.convert.Writer;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ext/InetAddressSimpledCoder.java b/android-jdk6-redkale/src/org/redkale/convert/ext/InetAddressSimpledCoder.java
index f2eee328a..a057cf2b5 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ext/InetAddressSimpledCoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ext/InetAddressSimpledCoder.java
@@ -12,6 +12,7 @@ import java.net.*;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ext/IntArraySimpledCoder.java b/android-jdk6-redkale/src/org/redkale/convert/ext/IntArraySimpledCoder.java
index ca9b60000..5e9cb18fc 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ext/IntArraySimpledCoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ext/IntArraySimpledCoder.java
@@ -11,6 +11,7 @@ import org.redkale.convert.Writer;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
@@ -38,9 +39,8 @@ public final class IntArraySimpledCoder exte
@Override
public int[] convertFrom(R in) {
int len = in.readArrayB();
- if (len == Reader.SIGN_NULL) {
- return null;
- } else if (len == Reader.SIGN_NOLENGTH) {
+ if (len == Reader.SIGN_NULL) return null;
+ if (len == Reader.SIGN_NOLENGTH) {
int size = 0;
int[] data = new int[8];
while (in.hasNext()) {
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ext/IntSimpledCoder.java b/android-jdk6-redkale/src/org/redkale/convert/ext/IntSimpledCoder.java
index 13815f424..f007ca0e0 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ext/IntSimpledCoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ext/IntSimpledCoder.java
@@ -11,6 +11,7 @@ import org.redkale.convert.Writer;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ext/LongArraySimpledCoder.java b/android-jdk6-redkale/src/org/redkale/convert/ext/LongArraySimpledCoder.java
index b9f21a145..879157c03 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ext/LongArraySimpledCoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ext/LongArraySimpledCoder.java
@@ -11,6 +11,7 @@ import org.redkale.convert.Writer;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
@@ -38,9 +39,8 @@ public final class LongArraySimpledCoder ext
@Override
public long[] convertFrom(R in) {
int len = in.readArrayB();
- if (len == Reader.SIGN_NULL) {
- return null;
- } else if (len == Reader.SIGN_NOLENGTH) {
+ if (len == Reader.SIGN_NULL) return null;
+ if (len == Reader.SIGN_NOLENGTH) {
int size = 0;
long[] data = new long[8];
while (in.hasNext()) {
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ext/LongSimpledCoder.java b/android-jdk6-redkale/src/org/redkale/convert/ext/LongSimpledCoder.java
index 0c578ceea..ffbbb9552 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ext/LongSimpledCoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ext/LongSimpledCoder.java
@@ -12,6 +12,7 @@ import org.redkale.convert.Writer;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ext/NumberSimpledCoder.java b/android-jdk6-redkale/src/org/redkale/convert/ext/NumberSimpledCoder.java
index 28c809fa8..96c5c4dca 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ext/NumberSimpledCoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ext/NumberSimpledCoder.java
@@ -11,6 +11,7 @@ import org.redkale.convert.Writer;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ext/PatternSimpledCoder.java b/android-jdk6-redkale/src/org/redkale/convert/ext/PatternSimpledCoder.java
index fd652a3ac..c79c72b07 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ext/PatternSimpledCoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ext/PatternSimpledCoder.java
@@ -10,6 +10,7 @@ import org.redkale.convert.*;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ext/ShortArraySimpledCoder.java b/android-jdk6-redkale/src/org/redkale/convert/ext/ShortArraySimpledCoder.java
index af726f8bc..5a9cd1929 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ext/ShortArraySimpledCoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ext/ShortArraySimpledCoder.java
@@ -11,6 +11,7 @@ import org.redkale.convert.Writer;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
@@ -38,9 +39,8 @@ public final class ShortArraySimpledCoder ex
@Override
public short[] convertFrom(R in) {
int len = in.readArrayB();
- if (len == Reader.SIGN_NULL) {
- return null;
- } else if (len == Reader.SIGN_NOLENGTH) {
+ if (len == Reader.SIGN_NULL) return null;
+ if (len == Reader.SIGN_NOLENGTH) {
int size = 0;
short[] data = new short[8];
while (in.hasNext()) {
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ext/ShortSimpledCoder.java b/android-jdk6-redkale/src/org/redkale/convert/ext/ShortSimpledCoder.java
index 1b6f08221..18c7ca5cd 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ext/ShortSimpledCoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ext/ShortSimpledCoder.java
@@ -11,6 +11,7 @@ import org.redkale.convert.Writer;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ext/StringArraySimpledCoder.java b/android-jdk6-redkale/src/org/redkale/convert/ext/StringArraySimpledCoder.java
index c07cbc979..4ddc174b3 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ext/StringArraySimpledCoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ext/StringArraySimpledCoder.java
@@ -11,6 +11,7 @@ import org.redkale.convert.Writer;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
@@ -38,9 +39,8 @@ public final class StringArraySimpledCoder e
@Override
public String[] convertFrom(R in) {
int len = in.readArrayB();
- if (len == Reader.SIGN_NULL) {
- return null;
- } else if (len == Reader.SIGN_NOLENGTH) {
+ if (len == Reader.SIGN_NULL) return null;
+ if (len == Reader.SIGN_NOLENGTH) {
int size = 0;
String[] data = new String[8];
while (in.hasNext()) {
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ext/StringSimpledCoder.java b/android-jdk6-redkale/src/org/redkale/convert/ext/StringSimpledCoder.java
index 189e557ec..f41425233 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ext/StringSimpledCoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ext/StringSimpledCoder.java
@@ -11,6 +11,7 @@ import org.redkale.convert.Writer;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ext/TypeSimpledCoder.java b/android-jdk6-redkale/src/org/redkale/convert/ext/TypeSimpledCoder.java
index f1a93b4e4..0dc4349c9 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/ext/TypeSimpledCoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/ext/TypeSimpledCoder.java
@@ -11,6 +11,7 @@ import org.redkale.convert.SimpledCoder;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
diff --git a/android-jdk6-redkale/src/org/redkale/convert/json/DLongJsonSimpledCoder.java b/android-jdk6-redkale/src/org/redkale/convert/json/DLongJsonSimpledCoder.java
new file mode 100644
index 000000000..a68019866
--- /dev/null
+++ b/android-jdk6-redkale/src/org/redkale/convert/json/DLongJsonSimpledCoder.java
@@ -0,0 +1,34 @@
+/*
+ * 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.json;
+
+import org.redkale.util.*;
+
+/**
+ *
+ * @see http://www.redkale.org
+ * @author zhangjx
+ */
+public class DLongJsonSimpledCoder extends JsonSimpledCoder {
+
+ public static final DLongJsonSimpledCoder instance = new DLongJsonSimpledCoder();
+
+ @Override
+ public void convertTo(final JsonWriter out, final DLong value) {
+ if (value == null) {
+ out.writeNull();
+ } else {
+ out.writeSmallString(value.toString());
+ }
+ }
+
+ @Override
+ public DLong convertFrom(JsonReader in) {
+ final String str = in.readString();
+ if (str == null) return null;
+ return new DLong(Utility.hexToBin(str));
+ }
+}
diff --git a/android-jdk6-redkale/src/org/redkale/convert/json/InetAddressJsonSimpledCoder.java b/android-jdk6-redkale/src/org/redkale/convert/json/InetAddressJsonSimpledCoder.java
index 2720284fd..d65032255 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/json/InetAddressJsonSimpledCoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/json/InetAddressJsonSimpledCoder.java
@@ -11,6 +11,7 @@ import org.redkale.convert.ext.*;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
* @param
diff --git a/android-jdk6-redkale/src/org/redkale/convert/json/JsonByteBufferWriter.java b/android-jdk6-redkale/src/org/redkale/convert/json/JsonByteBufferWriter.java
index 20835b1a9..1249de9ca 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/json/JsonByteBufferWriter.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/json/JsonByteBufferWriter.java
@@ -13,6 +13,7 @@ import org.redkale.util.*;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
*/
public final class JsonByteBufferWriter extends JsonWriter {
diff --git a/android-jdk6-redkale/src/org/redkale/convert/json/JsonConvert.java b/android-jdk6-redkale/src/org/redkale/convert/json/JsonConvert.java
index d4d1786c8..4f7089ad5 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/json/JsonConvert.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/json/JsonConvert.java
@@ -14,6 +14,7 @@ import org.redkale.util.*;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
*/
@SuppressWarnings("unchecked")
diff --git a/android-jdk6-redkale/src/org/redkale/convert/json/JsonFactory.java b/android-jdk6-redkale/src/org/redkale/convert/json/JsonFactory.java
index 435ab3496..88753f691 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/json/JsonFactory.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/json/JsonFactory.java
@@ -9,9 +9,11 @@ import org.redkale.convert.ConvertType;
import org.redkale.convert.Factory;
import java.io.Serializable;
import java.net.*;
+import org.redkale.util.*;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
*/
public final class JsonFactory extends Factory {
@@ -21,6 +23,7 @@ public final class JsonFactory extends Factory {
static {
instance.register(InetAddress.class, InetAddressJsonSimpledCoder.instance);
instance.register(InetSocketAddress.class, InetAddressJsonSimpledCoder.InetSocketAddressJsonSimpledCoder.instance);
+ instance.register(DLong.class, DLongJsonSimpledCoder.instance);
instance.register(Serializable.class, instance.loadEncoder(Object.class));
}
diff --git a/android-jdk6-redkale/src/org/redkale/convert/json/JsonReader.java b/android-jdk6-redkale/src/org/redkale/convert/json/JsonReader.java
index 4a61d6c85..1789faa0e 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/json/JsonReader.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/json/JsonReader.java
@@ -13,6 +13,7 @@ import org.redkale.util.*;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
*/
public final class JsonReader implements Reader {
diff --git a/android-jdk6-redkale/src/org/redkale/convert/json/JsonSimpledCoder.java b/android-jdk6-redkale/src/org/redkale/convert/json/JsonSimpledCoder.java
index 396cba71a..d8049e80c 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/json/JsonSimpledCoder.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/json/JsonSimpledCoder.java
@@ -9,6 +9,7 @@ import org.redkale.convert.SimpledCoder;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
* @param
*/
diff --git a/android-jdk6-redkale/src/org/redkale/convert/json/JsonWriter.java b/android-jdk6-redkale/src/org/redkale/convert/json/JsonWriter.java
index 6766406af..377aab23f 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/json/JsonWriter.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/json/JsonWriter.java
@@ -14,6 +14,7 @@ import org.redkale.util.*;
*
* writeTo系列的方法输出的字符不能含特殊字符
*
+ * @see http://www.redkale.org
* @author zhangjx
*/
public class JsonWriter implements Writer {
diff --git a/android-jdk6-redkale/src/org/redkale/net/client/HttpClient.java b/android-jdk6-redkale/src/org/redkale/net/client/HttpClient.java
index d27696719..06f42f0f6 100644
--- a/android-jdk6-redkale/src/org/redkale/net/client/HttpClient.java
+++ b/android-jdk6-redkale/src/org/redkale/net/client/HttpClient.java
@@ -10,6 +10,7 @@ import java.util.*;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
*/
public final class HttpClient {
diff --git a/android-jdk6-redkale/src/org/redkale/net/client/HttpFactory.java b/android-jdk6-redkale/src/org/redkale/net/client/HttpFactory.java
index af276593e..0a31702cc 100644
--- a/android-jdk6-redkale/src/org/redkale/net/client/HttpFactory.java
+++ b/android-jdk6-redkale/src/org/redkale/net/client/HttpFactory.java
@@ -11,6 +11,7 @@ import java.util.concurrent.*;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
*/
public class HttpFactory {
diff --git a/android-jdk6-redkale/src/org/redkale/net/client/WebSocketClient.java b/android-jdk6-redkale/src/org/redkale/net/client/WebSocketClient.java
index eca39a863..f6e283251 100644
--- a/android-jdk6-redkale/src/org/redkale/net/client/WebSocketClient.java
+++ b/android-jdk6-redkale/src/org/redkale/net/client/WebSocketClient.java
@@ -14,6 +14,7 @@ import org.redkale.util.*;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
*/
public class WebSocketClient {
diff --git a/android-jdk6-redkale/src/org/redkale/util/AnyValue.java b/android-jdk6-redkale/src/org/redkale/util/AnyValue.java
new file mode 100644
index 000000000..737753c38
--- /dev/null
+++ b/android-jdk6-redkale/src/org/redkale/util/AnyValue.java
@@ -0,0 +1,446 @@
+/*
+ * 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.util;
+
+import java.lang.reflect.Array;
+import java.util.*;
+import java.util.function.BiPredicate;
+
+/**
+ * 该类提供类似JSONObject的数据结构,主要用于读取xml配置文件和http-header存储
+ *
+ * @see http://www.redkale.org
+ * @author zhangjx
+ */
+@SuppressWarnings("unchecked")
+public abstract class AnyValue {
+
+ /**
+ * 可读写的AnyValue默认实现类
+ *
+ * @see http://www.redkale.org
+ * @author zhangjx
+ */
+ @SuppressWarnings("unchecked")
+ public static final class DefaultAnyValue extends AnyValue {
+
+ public static final BiPredicate EQUALS = new BiPredicate() {
+ @Override
+ public boolean test(String name1, String name2) {
+ return name1.equals(name2);
+ }
+ };
+
+ public static final BiPredicate EQUALSIGNORE = new BiPredicate() {
+ @Override
+ public boolean test(String name1, String name2) {
+ return name1.equalsIgnoreCase(name2);
+ }
+ };
+
+ private final BiPredicate predicate;
+
+ private Entry[] stringValues = new Entry[0];
+
+ private Entry[] entityValues = new Entry[0];
+
+ public static final DefaultAnyValue create() {
+ return new DefaultAnyValue();
+ }
+
+ public static final DefaultAnyValue create(String name, String value) {
+ DefaultAnyValue conf = new DefaultAnyValue();
+ conf.addValue(name, value);
+ return conf;
+ }
+
+ public static final DefaultAnyValue create(String name, AnyValue value) {
+ DefaultAnyValue conf = new DefaultAnyValue();
+ conf.addValue(name, value);
+ return conf;
+ }
+
+ public DefaultAnyValue() {
+ this(false);
+ }
+
+ public DefaultAnyValue(boolean ignoreCase) {
+ this.predicate = ignoreCase ? EQUALSIGNORE : EQUALS;
+ }
+
+ public DefaultAnyValue(BiPredicate predicate) {
+ this.predicate = predicate;
+ }
+
+ public DefaultAnyValue duplicate() {
+ DefaultAnyValue rs = new DefaultAnyValue(this.predicate);
+ rs.stringValues = this.stringValues;
+ rs.entityValues = this.entityValues;
+ return rs;
+ }
+
+ public DefaultAnyValue addAll(final AnyValue av) {
+ if (av == null) return this;
+ if (av instanceof DefaultAnyValue) {
+ final DefaultAnyValue adv = (DefaultAnyValue) av;
+ if (adv.stringValues != null) {
+ for (Entry en : adv.stringValues) {
+ this.addValue(en.name, en.value);
+ }
+ }
+ if (adv.entityValues != null) {
+ for (Entry en : adv.entityValues) {
+ this.addValue(en.name, en.value);
+ }
+ }
+ } else {
+ final Entry[] strings = av.getStringEntrys();
+ if (strings != null) {
+ for (Entry en : strings) {
+ this.addValue(en.name, en.value);
+ }
+ }
+ final Entry[] anys = av.getAnyEntrys();
+ if (anys != null) {
+ for (Entry en : anys) {
+ this.addValue(en.name, en.value);
+ }
+ }
+ }
+ return this;
+ }
+
+ public DefaultAnyValue setAll(final AnyValue av) {
+ if (av == null) return this;
+ if (av instanceof DefaultAnyValue) {
+ final DefaultAnyValue adv = (DefaultAnyValue) av;
+ if (adv.stringValues != null) {
+ for (Entry en : adv.stringValues) {
+ this.setValue(en.name, en.value);
+ }
+ }
+ if (adv.entityValues != null) {
+ for (Entry en : adv.entityValues) {
+ this.setValue(en.name, en.value);
+ }
+ }
+ } else {
+ final Entry[] strings = av.getStringEntrys();
+ if (strings != null) {
+ for (Entry en : strings) {
+ this.setValue(en.name, en.value);
+ }
+ }
+ final Entry[] anys = av.getAnyEntrys();
+ if (anys != null) {
+ for (Entry en : anys) {
+ this.setValue(en.name, en.value);
+ }
+ }
+ }
+ return this;
+ }
+
+ @Override
+ public Entry[] getStringEntrys() {
+ return stringValues;
+ }
+
+ @Override
+ public Entry[] getAnyEntrys() {
+ return entityValues;
+ }
+
+ @Override
+ public String[] getNames() {
+ Set set = new LinkedHashSet();
+ for (Entry en : this.stringValues) {
+ set.add(en.name);
+ }
+ for (Entry en : this.entityValues) {
+ set.add(en.name);
+ }
+ return set.toArray(new String[set.size()]);
+ }
+
+ @Override
+ public String[] getValues(String... names) {
+ return Entry.getValues(this.predicate, String.class, this.stringValues, names);
+ }
+
+ @Override
+ public AnyValue[] getAnyValues(String... names) {
+ return Entry.getValues(this.predicate, AnyValue.class, this.entityValues, names);
+ }
+
+ @Override
+ public String toString() {
+ return toString(0);
+ }
+
+ public DefaultAnyValue clear() {
+ this.stringValues = new Entry[0];
+ this.entityValues = new Entry[0];
+ return this;
+ }
+
+ public DefaultAnyValue setValue(String name, String value) {
+ if (name == null) return this;
+ if (getValue(name) == null) {
+ this.addValue(name, value);
+ } else {
+ for (Entry en : this.stringValues) {
+ if (predicate.test(en.name, name)) {
+ en.value = value;
+ return this;
+ }
+ }
+ }
+ return this;
+ }
+
+ public DefaultAnyValue setValue(String name, AnyValue value) {
+ if (name == null) return this;
+ if (getValue(name) == null) {
+ this.addValue(name, value);
+ } else {
+ for (Entry en : this.entityValues) {
+ if (predicate.test(en.name, name)) {
+ en.value = value;
+ return this;
+ }
+ }
+ }
+ return this;
+ }
+
+ public DefaultAnyValue addValue(String name, String value) {
+ if (name == null) return this;
+ int len = this.stringValues.length;
+ Entry[] news = new Entry[len + 1];
+ System.arraycopy(this.stringValues, 0, news, 0, len);
+ news[len] = new Entry(name, value);
+ this.stringValues = news;
+ return this;
+ }
+
+ public DefaultAnyValue addValue(String name, AnyValue value) {
+ if (name == null || value == null) return this;
+ int len = this.entityValues.length;
+ Entry[] news = new Entry[len + 1];
+ System.arraycopy(this.entityValues, 0, news, 0, len);
+ news[len] = new Entry(name, value);
+ this.entityValues = news;
+ return this;
+ }
+
+ @Override
+ public AnyValue getAnyValue(String name) {
+ for (Entry en : this.entityValues) {
+ if (predicate.test(en.name, name)) {
+ return en.value;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public String getValue(String name) {
+ for (Entry en : this.stringValues) {
+ if (predicate.test(en.name, name)) {
+ return en.value;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public String[] getValues(String name) {
+ return Entry.getValues(this.predicate, String.class, this.stringValues, name);
+ }
+
+ @Override
+ public AnyValue[] getAnyValues(String name) {
+ return Entry.getValues(this.predicate, AnyValue.class, this.entityValues, name);
+ }
+
+ }
+
+ public static final class Entry {
+
+ public final String name;
+
+ T value;
+
+ public Entry(String name0, T value0) {
+ this.name = name0;
+ this.value = value0;
+ }
+
+ public T getValue() {
+ return value;
+ }
+
+ static T[] getValues(BiPredicate comparison, Class clazz, Entry[] entitys, String name) {
+ int len = 0;
+ for (Entry en : entitys) {
+ if (comparison.test(en.name, name)) {
+ ++len;
+ }
+ }
+ if (len == 0) return (T[]) Array.newInstance(clazz, len);
+ T[] rs = (T[]) Array.newInstance(clazz, len);
+ int i = 0;
+ for (Entry en : entitys) {
+ if (comparison.test(en.name, name)) {
+ rs[i++] = en.value;
+ }
+ }
+ return rs;
+ }
+
+ static T[] getValues(BiPredicate comparison, Class clazz, Entry[] entitys, String... names) {
+ int len = 0;
+ for (Entry en : entitys) {
+ for (String name : names) {
+ if (comparison.test(en.name, name)) {
+ ++len;
+ break;
+ }
+ }
+ }
+ if (len == 0) return (T[]) Array.newInstance(clazz, len);
+ T[] rs = (T[]) Array.newInstance(clazz, len);
+ int i = 0;
+ for (Entry en : entitys) {
+ for (String name : names) {
+ if (comparison.test(en.name, name)) {
+ rs[i++] = en.value;
+ break;
+ }
+ }
+ }
+ return rs;
+ }
+ }
+
+ public static AnyValue create() {
+ return new DefaultAnyValue();
+ }
+
+ protected String toString(int len) {
+ if (len < 0) len = 0;
+ char[] chars = new char[len];
+ Arrays.fill(chars, ' ');
+ final String space = new String(chars);
+ StringBuilder sb = new StringBuilder();
+ sb.append("{\r\n");
+ for (Entry en : getStringEntrys()) {
+ sb.append(space).append(" '").append(en.name).append("': '").append(en.value).append("',\r\n");
+ }
+ for (Entry en : getAnyEntrys()) {
+ sb.append(space).append(" '").append(en.name).append("': '").append(en.value.toString(len + 4)).append("',\r\n");
+ }
+ sb.append(space).append('}');
+ return sb.toString();
+ }
+
+ public abstract Entry[] getStringEntrys();
+
+ public abstract Entry[] getAnyEntrys();
+
+ public abstract String[] getNames();
+
+ public abstract String[] getValues(String name);
+
+ public abstract String[] getValues(String... names);
+
+ public abstract AnyValue[] getAnyValues(String name);
+
+ public abstract AnyValue[] getAnyValues(String... names);
+
+ public abstract AnyValue getAnyValue(String name);
+
+ public abstract String getValue(String name);
+
+ public boolean getBoolValue(String name) {
+ return Boolean.parseBoolean(getValue(name));
+ }
+
+ public boolean getBoolValue(String name, boolean defaultValue) {
+ String value = getValue(name);
+ return value == null ? defaultValue : Boolean.parseBoolean(value);
+ }
+
+ public byte getByteValue(String name) {
+ return Byte.parseByte(getValue(name));
+ }
+
+ public byte getByteValue(String name, byte defaultValue) {
+ String value = getValue(name);
+ return value == null ? defaultValue : Byte.decode(value);
+ }
+
+ public char getCharValue(String name) {
+ return getValue(name).charAt(0);
+ }
+
+ public char getCharValue(String name, char defaultValue) {
+ String value = getValue(name);
+ return value == null || value.length() == 0 ? defaultValue : value.charAt(0);
+ }
+
+ public short getShortValue(String name) {
+ return Short.decode(getValue(name));
+ }
+
+ public short getShortValue(String name, short defaultValue) {
+ String value = getValue(name);
+ return value == null ? defaultValue : Short.decode(value);
+ }
+
+ public int getIntValue(String name) {
+ return Integer.decode(getValue(name));
+ }
+
+ public int getIntValue(String name, int defaultValue) {
+ String value = getValue(name);
+ return value == null ? defaultValue : Integer.decode(value);
+ }
+
+ public long getLongValue(String name) {
+ return Long.decode(getValue(name));
+ }
+
+ public long getLongValue(String name, long defaultValue) {
+ String value = getValue(name);
+ return value == null ? defaultValue : Long.decode(value);
+ }
+
+ public float getFloatValue(String name) {
+ return Float.parseFloat(getValue(name));
+ }
+
+ public float getFloatValue(String name, float defaultValue) {
+ String value = getValue(name);
+ return value == null ? defaultValue : Float.parseFloat(value);
+ }
+
+ public double getDoubleValue(String name) {
+ return Double.parseDouble(getValue(name));
+ }
+
+ public double getDoubleValue(String name, double defaultValue) {
+ String value = getValue(name);
+ return value == null ? defaultValue : Double.parseDouble(value);
+ }
+
+ public String getValue(String name, String defaultValue) {
+ String value = getValue(name);
+ return value == null ? defaultValue : value;
+ }
+
+}
diff --git a/android-jdk6-redkale/src/org/redkale/util/AsmMethodVisitor.java b/android-jdk6-redkale/src/org/redkale/util/AsmMethodVisitor.java
index c53b8f5b3..41f966d98 100644
--- a/android-jdk6-redkale/src/org/redkale/util/AsmMethodVisitor.java
+++ b/android-jdk6-redkale/src/org/redkale/util/AsmMethodVisitor.java
@@ -10,6 +10,7 @@ import org.objectweb.asm.*;
/**
*
+ * @see http://www.redkale.org
* @author zhangjx
*/
public class AsmMethodVisitor {
@@ -18,8 +19,9 @@ public class AsmMethodVisitor {
private boolean debug = false;
- public void setDebug(boolean d) {
+ public AsmMethodVisitor setDebug(boolean d) {
debug = d;
+ return this;
}
private final Map