DynClassDepends

This commit is contained in:
redkale
2024-01-27 08:36:24 +08:00
parent 75f645e9cf
commit 3fdea1b1d8
16 changed files with 85 additions and 85 deletions

View File

@@ -8,7 +8,6 @@ package org.redkale.annotation;
import static java.lang.annotation.RetentionPolicy.RUNTIME; import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.*; import java.lang.annotation.*;
import static java.lang.annotation.ElementType.*; import static java.lang.annotation.ElementType.*;
import org.redkale.asm.AsmDepends;
/** /**
* 类似java.beans.ConstructorProperties, 必须配合Creator使用 * 类似java.beans.ConstructorProperties, 必须配合Creator使用
@@ -21,7 +20,7 @@ import org.redkale.asm.AsmDepends;
@Documented @Documented
@Target({METHOD, CONSTRUCTOR}) @Target({METHOD, CONSTRUCTOR})
@Retention(RUNTIME) @Retention(RUNTIME)
@AsmDepends @DynClassDepends
public @interface ConstructorParameters { public @interface ConstructorParameters {
String[] value(); String[] value();

View File

@@ -1,14 +1,14 @@
/* /*
* *
*/ */
package org.redkale.asm; package org.redkale.annotation;
import java.lang.annotation.*; import java.lang.annotation.*;
import static java.lang.annotation.ElementType.*; import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.RetentionPolicy.*; import static java.lang.annotation.RetentionPolicy.*;
/** /**
* 被标记的元素表示会被asm动态字节码调用 * 被标记的元素表示会被动态字节码调用
* *
* <p> * <p>
* 详情见: https://redkale.org * 详情见: https://redkale.org
@@ -20,7 +20,7 @@ import static java.lang.annotation.RetentionPolicy.*;
@Documented @Documented
@Target({TYPE, METHOD, FIELD}) @Target({TYPE, METHOD, FIELD})
@Retention(SOURCE) @Retention(SOURCE)
public @interface AsmDepends { public @interface DynClassDepends {
Class[] value() default {}; Class[] value() default {};
} }

View File

@@ -10,13 +10,13 @@ import java.util.Objects;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import org.redkale.annotation.Nullable; import org.redkale.annotation.Nullable;
import org.redkale.annotation.Resource; import org.redkale.annotation.Resource;
import org.redkale.asm.AsmDepends;
import org.redkale.cache.CacheManager; import org.redkale.cache.CacheManager;
import org.redkale.convert.json.JsonConvert; import org.redkale.convert.json.JsonConvert;
import org.redkale.util.Environment; import org.redkale.util.Environment;
import org.redkale.util.MultiHashKey; import org.redkale.util.MultiHashKey;
import org.redkale.util.ThrowSupplier; import org.redkale.util.ThrowSupplier;
import org.redkale.util.TypeToken; import org.redkale.util.TypeToken;
import org.redkale.annotation.DynClassDepends;
/** /**
* *
@@ -29,7 +29,7 @@ import org.redkale.util.TypeToken;
* *
* @since 2.8.0 * @since 2.8.0
*/ */
@AsmDepends @DynClassDepends
public class CacheAction { public class CacheAction {
@Resource @Resource
@@ -102,7 +102,7 @@ public class CacheAction {
this.remoteExpire = createDuration(cached.getRemoteExpire()); this.remoteExpire = createDuration(cached.getRemoteExpire());
} }
@AsmDepends @DynClassDepends
public <T> T get(ThrowSupplier<T> supplier, Object... args) { public <T> T get(ThrowSupplier<T> supplier, Object... args) {
if (async) { if (async) {
ThrowSupplier supplier0 = supplier; ThrowSupplier supplier0 = supplier;

View File

@@ -6,7 +6,7 @@
package org.redkale.convert; package org.redkale.convert;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import org.redkale.asm.AsmDepends; import org.redkale.annotation.DynClassDepends;
/** /**
* 反序列化操作类 * 反序列化操作类
@@ -18,7 +18,7 @@ import org.redkale.asm.AsmDepends;
* @param <R> Reader输入的子类 * @param <R> Reader输入的子类
* @param <T> 反解析的数据类型 * @param <T> 反解析的数据类型
*/ */
@AsmDepends @DynClassDepends
public interface Decodeable<R extends Reader, T> { public interface Decodeable<R extends Reader, T> {
/** /**

View File

@@ -6,7 +6,7 @@
package org.redkale.convert; package org.redkale.convert;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import org.redkale.asm.AsmDepends; import org.redkale.annotation.DynClassDepends;
/** /**
* 序列化操作类 * 序列化操作类
@@ -18,7 +18,7 @@ import org.redkale.asm.AsmDepends;
* @param <W> Writer输出的子类 * @param <W> Writer输出的子类
* @param <T> 序列化的数据类型 * @param <T> 序列化的数据类型
*/ */
@AsmDepends @DynClassDepends
public interface Encodeable<W extends Writer, T> { public interface Encodeable<W extends Writer, T> {
/** /**

View File

@@ -7,8 +7,8 @@ package org.redkale.convert;
import java.lang.reflect.*; import java.lang.reflect.*;
import java.util.function.*; import java.util.function.*;
import org.redkale.asm.AsmDepends;
import org.redkale.util.*; import org.redkale.util.*;
import org.redkale.annotation.DynClassDepends;
/** /**
* 序列化的数据输出流 * 序列化的数据输出流
@@ -131,7 +131,7 @@ public abstract class Writer {
* *
* @param clazz 对象的类名 * @param clazz 对象的类名
*/ */
@AsmDepends @DynClassDepends
public final void writeObjectNull(final Class clazz) { public final void writeObjectNull(final Class clazz) {
writeClassName(null); writeClassName(null);
writeNull(); writeNull();

View File

@@ -6,8 +6,8 @@
package org.redkale.convert.json; package org.redkale.convert.json;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import org.redkale.asm.AsmDepends;
import org.redkale.convert.*; import org.redkale.convert.*;
import org.redkale.annotation.DynClassDepends;
/** /**
* *
@@ -29,7 +29,7 @@ public abstract class JsonWriter extends Writer {
return (JsonWriter) super.withFeatures(features); return (JsonWriter) super.withFeatures(features);
} }
@AsmDepends @DynClassDepends
public boolean isExtFuncEmpty() { public boolean isExtFuncEmpty() {
return this.objExtFunc == null && this.objFieldFunc == null; return this.objExtFunc == null && this.objFieldFunc == null;
} }
@@ -49,57 +49,57 @@ public abstract class JsonWriter extends Writer {
* @param quote 是否加双引号 * @param quote 是否加双引号
* @param value 非null且不含需要转义的字符的String值 * @param value 非null且不含需要转义的字符的String值
*/ */
@AsmDepends @DynClassDepends
public abstract void writeLatin1To(final boolean quote, final String value); public abstract void writeLatin1To(final boolean quote, final String value);
@AsmDepends @DynClassDepends
public abstract void writeFieldShortValue(final byte[] fieldBytes, final short value); public abstract void writeFieldShortValue(final byte[] fieldBytes, final short value);
@AsmDepends @DynClassDepends
public abstract void writeFieldIntValue(final byte[] fieldBytes, final int value); public abstract void writeFieldIntValue(final byte[] fieldBytes, final int value);
@AsmDepends @DynClassDepends
public abstract void writeFieldLongValue(final byte[] fieldBytes, final long value); public abstract void writeFieldLongValue(final byte[] fieldBytes, final long value);
@AsmDepends @DynClassDepends
public abstract void writeFieldLatin1Value(final byte[] fieldBytes, final String value); public abstract void writeFieldLatin1Value(final byte[] fieldBytes, final String value);
@AsmDepends @DynClassDepends
public abstract void writeLastFieldShortValue(final byte[] fieldBytes, final short value); public abstract void writeLastFieldShortValue(final byte[] fieldBytes, final short value);
@AsmDepends @DynClassDepends
public abstract void writeLastFieldIntValue(final byte[] fieldBytes, final int value); public abstract void writeLastFieldIntValue(final byte[] fieldBytes, final int value);
@AsmDepends @DynClassDepends
public abstract void writeLastFieldLongValue(final byte[] fieldBytes, final long value); public abstract void writeLastFieldLongValue(final byte[] fieldBytes, final long value);
@AsmDepends @DynClassDepends
public abstract void writeLastFieldLatin1Value(final byte[] fieldBytes, final String value); public abstract void writeLastFieldLatin1Value(final byte[] fieldBytes, final String value);
//firstFieldBytes 必须带{开头 //firstFieldBytes 必须带{开头
@AsmDepends @DynClassDepends
public abstract void writeObjectByOnlyOneLatin1FieldValue(final byte[] firstFieldBytes, final String value); public abstract void writeObjectByOnlyOneLatin1FieldValue(final byte[] firstFieldBytes, final String value);
//firstFieldBytes 必须带{开头, lastFieldBytes必须,开头 //firstFieldBytes 必须带{开头, lastFieldBytes必须,开头
@AsmDepends @DynClassDepends
public abstract void writeObjectByOnlyTwoIntFieldValue(final byte[] firstFieldBytes, final int value1, final byte[] lastFieldBytes, final int value2); public abstract void writeObjectByOnlyTwoIntFieldValue(final byte[] firstFieldBytes, final int value1, final byte[] lastFieldBytes, final int value2);
@Override @Override
@AsmDepends @DynClassDepends
public abstract void writeBoolean(boolean value); public abstract void writeBoolean(boolean value);
@Override @Override
@AsmDepends @DynClassDepends
public abstract void writeInt(int value); public abstract void writeInt(int value);
@Override @Override
@AsmDepends @DynClassDepends
public abstract void writeLong(long value); public abstract void writeLong(long value);
public abstract void writeString(final boolean quote, String value); public abstract void writeString(final boolean quote, String value);
@Override @Override
@AsmDepends @DynClassDepends
public abstract void writeString(String value); public abstract void writeString(String value);
@Override //只容许JsonBytesWriter重写此方法 @Override //只容许JsonBytesWriter重写此方法

View File

@@ -4,9 +4,9 @@
package org.redkale.mq; package org.redkale.mq;
import org.redkale.annotation.Component; import org.redkale.annotation.Component;
import org.redkale.asm.AsmDepends;
import org.redkale.service.Local; import org.redkale.service.Local;
import org.redkale.util.AnyValue; import org.redkale.util.AnyValue;
import org.redkale.annotation.DynClassDepends;
/** /**
* MQ消费器 实现类必须标记{@link org.redkale.mq.ResourceConsumer} * MQ消费器 实现类必须标记{@link org.redkale.mq.ResourceConsumer}
@@ -21,7 +21,7 @@ import org.redkale.util.AnyValue;
*/ */
@Local @Local
@Component @Component
@AsmDepends @DynClassDepends
public interface MessageConsumer<T> { public interface MessageConsumer<T> {
default void init(AnyValue config) { default void init(AnyValue config) {

View File

@@ -6,8 +6,8 @@ package org.redkale.mq;
import java.lang.annotation.*; import java.lang.annotation.*;
import static java.lang.annotation.ElementType.TYPE; import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME; import static java.lang.annotation.RetentionPolicy.RUNTIME;
import org.redkale.asm.AsmDepends;
import org.redkale.convert.ConvertType; import org.redkale.convert.ConvertType;
import org.redkale.annotation.DynClassDepends;
/** /**
* MQ资源注解, 只能标记在{@link org.redkale.mq.MessageConsumer}子类上 * MQ资源注解, 只能标记在{@link org.redkale.mq.MessageConsumer}子类上
@@ -19,7 +19,7 @@ import org.redkale.convert.ConvertType;
* *
* @since 2.8.0 * @since 2.8.0
*/ */
@AsmDepends @DynClassDepends
@Documented @Documented
@Target({TYPE}) @Target({TYPE})
@Retention(RUNTIME) @Retention(RUNTIME)

View File

@@ -14,13 +14,13 @@ import java.util.*;
import java.util.function.Supplier; import java.util.function.Supplier;
import java.util.logging.Level; import java.util.logging.Level;
import org.redkale.annotation.Comment; import org.redkale.annotation.Comment;
import org.redkale.asm.AsmDepends;
import org.redkale.convert.*; import org.redkale.convert.*;
import org.redkale.convert.json.JsonConvert; import org.redkale.convert.json.JsonConvert;
import org.redkale.net.Request; import org.redkale.net.Request;
import org.redkale.util.*; import org.redkale.util.*;
import static org.redkale.util.Utility.isEmpty; import static org.redkale.util.Utility.isEmpty;
import static org.redkale.util.Utility.isNotEmpty; import static org.redkale.util.Utility.isNotEmpty;
import org.redkale.annotation.DynClassDepends;
/** /**
* Http请求包 与javax.servlet.http.HttpServletRequest 基本类似。 <br> * Http请求包 与javax.servlet.http.HttpServletRequest 基本类似。 <br>
@@ -1181,7 +1181,7 @@ public class HttpRequest extends Request<HttpContext> {
* *
* @since 2.4.0 * @since 2.4.0
*/ */
@AsmDepends @DynClassDepends
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public int currentIntUserid() { public int currentIntUserid() {
if (currentUserid == CURRUSERID_NIL || currentUserid == null) { if (currentUserid == CURRUSERID_NIL || currentUserid == null) {
@@ -1201,7 +1201,7 @@ public class HttpRequest extends Request<HttpContext> {
* *
* @since 2.7.0 * @since 2.7.0
*/ */
@AsmDepends @DynClassDepends
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public long currentLongUserid() { public long currentLongUserid() {
if (currentUserid == CURRUSERID_NIL || currentUserid == null) { if (currentUserid == CURRUSERID_NIL || currentUserid == null) {
@@ -1221,7 +1221,7 @@ public class HttpRequest extends Request<HttpContext> {
* *
* @since 2.8.0 * @since 2.8.0
*/ */
@AsmDepends @DynClassDepends
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public String currentStringUserid() { public String currentStringUserid() {
if (currentUserid == CURRUSERID_NIL || currentUserid == null) { if (currentUserid == CURRUSERID_NIL || currentUserid == null) {
@@ -1240,7 +1240,7 @@ public class HttpRequest extends Request<HttpContext> {
* *
* @since 2.1.0 * @since 2.1.0
*/ */
@AsmDepends @DynClassDepends
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public <T extends Serializable> T currentUserid(Class<T> type) { public <T extends Serializable> T currentUserid(Class<T> type) {
if (currentUserid == CURRUSERID_NIL || currentUserid == null) { if (currentUserid == CURRUSERID_NIL || currentUserid == null) {
@@ -2163,7 +2163,7 @@ public class HttpRequest extends Request<HttpContext> {
* *
* @return AnyValue * @return AnyValue
*/ */
@AsmDepends @DynClassDepends
public HttpHeaders getHeaders() { public HttpHeaders getHeaders() {
parseHeader(); parseHeader();
return headers; return headers;
@@ -2199,7 +2199,7 @@ public class HttpRequest extends Request<HttpContext> {
* *
* @return header值 * @return header值
*/ */
@AsmDepends @DynClassDepends
public String getHeader(String name, String defaultValue) { public String getHeader(String name, String defaultValue) {
parseHeader(); parseHeader();
return headers.firstValue(name, defaultValue); return headers.firstValue(name, defaultValue);
@@ -2214,7 +2214,7 @@ public class HttpRequest extends Request<HttpContext> {
* *
* @return header值 * @return header值
*/ */
@AsmDepends @DynClassDepends
public <T> T getJsonHeader(java.lang.reflect.Type type, String name) { public <T> T getJsonHeader(java.lang.reflect.Type type, String name) {
String v = getHeader(name); String v = getHeader(name);
return isEmpty(v) ? null : jsonConvert.convertFrom(type, v); return isEmpty(v) ? null : jsonConvert.convertFrom(type, v);
@@ -2230,7 +2230,7 @@ public class HttpRequest extends Request<HttpContext> {
* *
* @return header值 * @return header值
*/ */
@AsmDepends @DynClassDepends
public <T> T getJsonHeader(JsonConvert convert, java.lang.reflect.Type type, String name) { public <T> T getJsonHeader(JsonConvert convert, java.lang.reflect.Type type, String name) {
String v = getHeader(name); String v = getHeader(name);
return isEmpty(v) ? null : convert.convertFrom(type, v); return isEmpty(v) ? null : convert.convertFrom(type, v);
@@ -2244,7 +2244,7 @@ public class HttpRequest extends Request<HttpContext> {
* *
* @return header值 * @return header值
*/ */
@AsmDepends @DynClassDepends
public boolean getBooleanHeader(String name, boolean defaultValue) { public boolean getBooleanHeader(String name, boolean defaultValue) {
String value = getHeader(name); String value = getHeader(name);
return isEmpty(value) ? defaultValue : Boolean.parseBoolean(value); return isEmpty(value) ? defaultValue : Boolean.parseBoolean(value);
@@ -2258,7 +2258,7 @@ public class HttpRequest extends Request<HttpContext> {
* *
* @return header值 * @return header值
*/ */
@AsmDepends @DynClassDepends
public short getShortHeader(String name, short defaultValue) { public short getShortHeader(String name, short defaultValue) {
String value = getHeader(name); String value = getHeader(name);
if (isEmpty(value)) { if (isEmpty(value)) {
@@ -2280,7 +2280,7 @@ public class HttpRequest extends Request<HttpContext> {
* *
* @return header值 * @return header值
*/ */
@AsmDepends @DynClassDepends
public short getShortHeader(int radix, String name, short defaultValue) { public short getShortHeader(int radix, String name, short defaultValue) {
String value = getHeader(name); String value = getHeader(name);
if (isEmpty(value)) { if (isEmpty(value)) {
@@ -2301,7 +2301,7 @@ public class HttpRequest extends Request<HttpContext> {
* *
* @return header值 * @return header值
*/ */
@AsmDepends @DynClassDepends
public short getShortHeader(String name, int defaultValue) { public short getShortHeader(String name, int defaultValue) {
String value = getHeader(name); String value = getHeader(name);
if (isEmpty(value)) { if (isEmpty(value)) {
@@ -2323,7 +2323,7 @@ public class HttpRequest extends Request<HttpContext> {
* *
* @return header值 * @return header值
*/ */
@AsmDepends @DynClassDepends
public short getShortHeader(int radix, String name, int defaultValue) { public short getShortHeader(int radix, String name, int defaultValue) {
String value = getHeader(name); String value = getHeader(name);
if (isEmpty(value)) { if (isEmpty(value)) {
@@ -2344,7 +2344,7 @@ public class HttpRequest extends Request<HttpContext> {
* *
* @return header值 * @return header值
*/ */
@AsmDepends @DynClassDepends
public int getIntHeader(String name, int defaultValue) { public int getIntHeader(String name, int defaultValue) {
String value = getHeader(name); String value = getHeader(name);
if (isEmpty(value)) { if (isEmpty(value)) {
@@ -2366,7 +2366,7 @@ public class HttpRequest extends Request<HttpContext> {
* *
* @return header值 * @return header值
*/ */
@AsmDepends @DynClassDepends
public int getIntHeader(int radix, String name, int defaultValue) { public int getIntHeader(int radix, String name, int defaultValue) {
String value = getHeader(name); String value = getHeader(name);
if (isEmpty(value)) { if (isEmpty(value)) {
@@ -2387,7 +2387,7 @@ public class HttpRequest extends Request<HttpContext> {
* *
* @return header值 * @return header值
*/ */
@AsmDepends @DynClassDepends
public long getLongHeader(String name, long defaultValue) { public long getLongHeader(String name, long defaultValue) {
String value = getHeader(name); String value = getHeader(name);
if (isEmpty(value)) { if (isEmpty(value)) {
@@ -2409,7 +2409,7 @@ public class HttpRequest extends Request<HttpContext> {
* *
* @return header值 * @return header值
*/ */
@AsmDepends @DynClassDepends
public long getLongHeader(int radix, String name, long defaultValue) { public long getLongHeader(int radix, String name, long defaultValue) {
String value = getHeader(name); String value = getHeader(name);
if (isEmpty(value)) { if (isEmpty(value)) {
@@ -2430,7 +2430,7 @@ public class HttpRequest extends Request<HttpContext> {
* *
* @return header值 * @return header值
*/ */
@AsmDepends @DynClassDepends
public float getFloatHeader(String name, float defaultValue) { public float getFloatHeader(String name, float defaultValue) {
String value = getHeader(name); String value = getHeader(name);
if (isEmpty(value)) { if (isEmpty(value)) {
@@ -2451,7 +2451,7 @@ public class HttpRequest extends Request<HttpContext> {
* *
* @return header值 * @return header值
*/ */
@AsmDepends @DynClassDepends
public double getDoubleHeader(String name, double defaultValue) { public double getDoubleHeader(String name, double defaultValue) {
String value = getHeader(name); String value = getHeader(name);
if (isEmpty(value)) { if (isEmpty(value)) {
@@ -2470,7 +2470,7 @@ public class HttpRequest extends Request<HttpContext> {
* *
* @return AnyValue * @return AnyValue
*/ */
@AsmDepends @DynClassDepends
public HttpParameters getParameters() { public HttpParameters getParameters() {
parseBody(); parseBody();
return params; return params;

View File

@@ -31,6 +31,7 @@ import org.redkale.source.Flipper;
import org.redkale.util.*; import org.redkale.util.*;
import org.redkale.util.RedkaleClassLoader.DynBytesClassLoader; import org.redkale.util.RedkaleClassLoader.DynBytesClassLoader;
import static org.redkale.util.Utility.isEmpty; import static org.redkale.util.Utility.isEmpty;
import org.redkale.annotation.DynClassDepends;
/** /**
* <p> * <p>
@@ -293,7 +294,7 @@ public final class Rest {
} }
//仅供Rest动态构建里 currentUserid() 使用 //仅供Rest动态构建里 currentUserid() 使用
@AsmDepends @DynClassDepends
public static <T> T orElse(T t, T defValue) { public static <T> T orElse(T t, T defValue) {
return t == null ? defValue : t; return t == null ? defValue : t;
} }

View File

@@ -8,13 +8,13 @@ package org.redkale.net.sncp;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.nio.channels.CompletionHandler; import java.nio.channels.CompletionHandler;
import java.util.concurrent.*; import java.util.concurrent.*;
import org.redkale.asm.AsmDepends;
import org.redkale.convert.bson.BsonWriter; import org.redkale.convert.bson.BsonWriter;
import org.redkale.net.Response; import org.redkale.net.Response;
import static org.redkale.net.sncp.SncpHeader.KEEPALIVE_OFF; import static org.redkale.net.sncp.SncpHeader.KEEPALIVE_OFF;
import static org.redkale.net.sncp.SncpHeader.KEEPALIVE_ON; import static org.redkale.net.sncp.SncpHeader.KEEPALIVE_ON;
import org.redkale.util.ByteArray; import org.redkale.util.ByteArray;
import org.redkale.util.Traces; import org.redkale.util.Traces;
import org.redkale.annotation.DynClassDepends;
/** /**
* *
@@ -86,7 +86,7 @@ public class SncpResponse extends Response<SncpContext, SncpRequest> {
return this; return this;
} }
@AsmDepends @DynClassDepends
public <T extends CompletionHandler> T getParamAsyncHandler() { public <T extends CompletionHandler> T getParamAsyncHandler() {
return (T) this.paramAsyncHandler; return (T) this.paramAsyncHandler;
} }

View File

@@ -10,11 +10,11 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import java.util.stream.Stream; import java.util.stream.Stream;
import org.redkale.asm.AsmDepends;
import org.redkale.util.LambdaFunction; import org.redkale.util.LambdaFunction;
import org.redkale.util.LambdaSupplier; import org.redkale.util.LambdaSupplier;
import org.redkale.util.SelectColumn; import org.redkale.util.SelectColumn;
import org.redkale.util.Sheet; import org.redkale.util.Sheet;
import org.redkale.annotation.DynClassDepends;
/** /**
* 类似Mybatis的Mapper接口类, 接口系列和DataSource相似度高 <br> * 类似Mybatis的Mapper接口类, 接口系列和DataSource相似度高 <br>
@@ -39,7 +39,7 @@ public interface DataSqlMapper<T> {
* *
* @return DataSqlSource * @return DataSqlSource
*/ */
@AsmDepends @DynClassDepends
DataSqlSource dataSource(); DataSqlSource dataSource();
/** /**
@@ -48,7 +48,7 @@ public interface DataSqlMapper<T> {
* *
* @return Class * @return Class
*/ */
@AsmDepends @DynClassDepends
Class<T> entityType(); Class<T> entityType();
/** /**

View File

@@ -7,9 +7,9 @@ import java.io.Serializable;
import java.util.*; import java.util.*;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import java.util.function.*; import java.util.function.*;
import org.redkale.asm.AsmDepends;
import static org.redkale.source.DataResultSet.formatColumnValue; import static org.redkale.source.DataResultSet.formatColumnValue;
import org.redkale.util.*; import org.redkale.util.*;
import org.redkale.annotation.DynClassDepends;
/** /**
* *
@@ -21,7 +21,7 @@ import org.redkale.util.*;
* @author zhangjx * @author zhangjx
* @since 2.8.0 * @since 2.8.0
*/ */
@AsmDepends @DynClassDepends
public interface DataSqlSource extends DataSource { public interface DataSqlSource extends DataSource {
/** /**
@@ -130,10 +130,10 @@ public interface DataSqlSource extends DataSource {
*/ */
public <V> CompletableFuture<V> nativeQueryAsync(String sql, BiConsumer<Object, Object> consumer, Function<DataResultSet, V> handler, Map<String, Object> params); public <V> CompletableFuture<V> nativeQueryAsync(String sql, BiConsumer<Object, Object> consumer, Function<DataResultSet, V> handler, Map<String, Object> params);
@AsmDepends @DynClassDepends
public <V> Sheet<V> nativeQuerySheet(Class<V> type, String sql, Flipper flipper, Map<String, Object> params); public <V> Sheet<V> nativeQuerySheet(Class<V> type, String sql, Flipper flipper, Map<String, Object> params);
@AsmDepends @DynClassDepends
public <V> CompletableFuture<Sheet<V>> nativeQuerySheetAsync(Class<V> type, String sql, Flipper flipper, Map<String, Object> params); public <V> CompletableFuture<Sheet<V>> nativeQuerySheetAsync(Class<V> type, String sql, Flipper flipper, Map<String, Object> params);
//----------------------------- 无参数 ----------------------------- //----------------------------- 无参数 -----------------------------
@@ -145,37 +145,37 @@ public interface DataSqlSource extends DataSource {
return nativeQueryAsync(sql, null, handler); return nativeQueryAsync(sql, null, handler);
} }
@AsmDepends @DynClassDepends
default <V> V nativeQueryOne(Class<V> type, String sql) { default <V> V nativeQueryOne(Class<V> type, String sql) {
return nativeQuery(sql, rset -> EntityBuilder.getOneValue(type, rset)); return nativeQuery(sql, rset -> EntityBuilder.getOneValue(type, rset));
} }
@AsmDepends @DynClassDepends
default <V> CompletableFuture<V> nativeQueryOneAsync(Class<V> type, String sql) { default <V> CompletableFuture<V> nativeQueryOneAsync(Class<V> type, String sql) {
return nativeQueryAsync(sql, rset -> EntityBuilder.getOneValue(type, rset)); return nativeQueryAsync(sql, rset -> EntityBuilder.getOneValue(type, rset));
} }
@AsmDepends @DynClassDepends
default <V> List<V> nativeQueryList(Class<V> type, String sql) { default <V> List<V> nativeQueryList(Class<V> type, String sql) {
return nativeQuery(sql, rset -> EntityBuilder.getListValue(type, rset)); return nativeQuery(sql, rset -> EntityBuilder.getListValue(type, rset));
} }
@AsmDepends @DynClassDepends
default <V> CompletableFuture<List<V>> nativeQueryListAsync(Class<V> type, String sql) { default <V> CompletableFuture<List<V>> nativeQueryListAsync(Class<V> type, String sql) {
return nativeQueryAsync(sql, rset -> EntityBuilder.getListValue(type, rset)); return nativeQueryAsync(sql, rset -> EntityBuilder.getListValue(type, rset));
} }
@AsmDepends @DynClassDepends
default <V> Sheet<V> nativeQuerySheet(Class<V> type, String sql, Flipper flipper) { default <V> Sheet<V> nativeQuerySheet(Class<V> type, String sql, Flipper flipper) {
return nativeQuerySheet(type, sql, flipper, Collections.emptyMap()); return nativeQuerySheet(type, sql, flipper, Collections.emptyMap());
} }
@AsmDepends @DynClassDepends
default <V> CompletableFuture<Sheet<V>> nativeQuerySheetAsync(Class<V> type, String sql, Flipper flipper) { default <V> CompletableFuture<Sheet<V>> nativeQuerySheetAsync(Class<V> type, String sql, Flipper flipper) {
return nativeQuerySheetAsync(type, sql, flipper, Collections.emptyMap()); return nativeQuerySheetAsync(type, sql, flipper, Collections.emptyMap());
} }
@AsmDepends @DynClassDepends
default <K, V> Map<K, V> nativeQueryMap(Class<K> keyType, Class<V> valType, String sql) { default <K, V> Map<K, V> nativeQueryMap(Class<K> keyType, Class<V> valType, String sql) {
return nativeQuery(sql, rset -> { return nativeQuery(sql, rset -> {
Map<K, V> map = new LinkedHashMap<>(); Map<K, V> map = new LinkedHashMap<>();
@@ -188,7 +188,7 @@ public interface DataSqlSource extends DataSource {
}); });
} }
@AsmDepends @DynClassDepends
default <K, V> CompletableFuture<Map<K, V>> nativeQueryMapAsync(Class<K> keyType, Class<V> valType, String sql) { default <K, V> CompletableFuture<Map<K, V>> nativeQueryMapAsync(Class<K> keyType, Class<V> valType, String sql) {
return nativeQueryAsync(sql, rset -> { return nativeQueryAsync(sql, rset -> {
Map<K, V> map = new LinkedHashMap<>(); Map<K, V> map = new LinkedHashMap<>();
@@ -226,7 +226,7 @@ public interface DataSqlSource extends DataSource {
return nativeQueryAsync(sql, null, handler, params); return nativeQueryAsync(sql, null, handler, params);
} }
@AsmDepends @DynClassDepends
default <V> V nativeQueryOne(Class<V> type, String sql, Map<String, Object> params) { default <V> V nativeQueryOne(Class<V> type, String sql, Map<String, Object> params) {
return nativeQuery(sql, rset -> { return nativeQuery(sql, rset -> {
if (!rset.next()) { if (!rset.next()) {
@@ -239,7 +239,7 @@ public interface DataSqlSource extends DataSource {
}, params); }, params);
} }
@AsmDepends @DynClassDepends
default <V> CompletableFuture<V> nativeQueryOneAsync(Class<V> type, String sql, Map<String, Object> params) { default <V> CompletableFuture<V> nativeQueryOneAsync(Class<V> type, String sql, Map<String, Object> params) {
return nativeQueryAsync(sql, rset -> { return nativeQueryAsync(sql, rset -> {
if (!rset.next()) { if (!rset.next()) {
@@ -252,7 +252,7 @@ public interface DataSqlSource extends DataSource {
}, params); }, params);
} }
@AsmDepends @DynClassDepends
default <V> List<V> nativeQueryList(Class<V> type, String sql, Map<String, Object> params) { default <V> List<V> nativeQueryList(Class<V> type, String sql, Map<String, Object> params) {
return nativeQuery(sql, rset -> { return nativeQuery(sql, rset -> {
if (EntityBuilder.isSimpleType(type)) { if (EntityBuilder.isSimpleType(type)) {
@@ -266,7 +266,7 @@ public interface DataSqlSource extends DataSource {
}, params); }, params);
} }
@AsmDepends @DynClassDepends
default <V> CompletableFuture<List<V>> nativeQueryListAsync(Class<V> type, String sql, Map<String, Object> params) { default <V> CompletableFuture<List<V>> nativeQueryListAsync(Class<V> type, String sql, Map<String, Object> params) {
return nativeQueryAsync(sql, rset -> { return nativeQueryAsync(sql, rset -> {
if (EntityBuilder.isSimpleType(type)) { if (EntityBuilder.isSimpleType(type)) {
@@ -280,7 +280,7 @@ public interface DataSqlSource extends DataSource {
}, params); }, params);
} }
@AsmDepends @DynClassDepends
default <K, V> Map<K, V> nativeQueryMap(Class<K> keyType, Class<V> valType, String sql, Map<String, Object> params) { default <K, V> Map<K, V> nativeQueryMap(Class<K> keyType, Class<V> valType, String sql, Map<String, Object> params) {
return nativeQuery(sql, rset -> { return nativeQuery(sql, rset -> {
Map<K, V> map = new LinkedHashMap<>(); Map<K, V> map = new LinkedHashMap<>();
@@ -293,7 +293,7 @@ public interface DataSqlSource extends DataSource {
}, params); }, params);
} }
@AsmDepends @DynClassDepends
default <K, V> CompletableFuture<Map<K, V>> nativeQueryMapAsync(Class<K> keyType, Class<V> valType, String sql, Map<String, Object> params) { default <K, V> CompletableFuture<Map<K, V>> nativeQueryMapAsync(Class<K> keyType, Class<V> valType, String sql, Map<String, Object> params) {
return nativeQueryAsync(sql, rset -> { return nativeQueryAsync(sql, rset -> {
Map<K, V> map = new LinkedHashMap<>(); Map<K, V> map = new LinkedHashMap<>();

View File

@@ -3,7 +3,7 @@
*/ */
package org.redkale.util; package org.redkale.util;
import org.redkale.asm.AsmDepends; import org.redkale.annotation.DynClassDepends;
/** /**
* 抛异常版的Supplier * 抛异常版的Supplier
@@ -16,7 +16,7 @@ import org.redkale.asm.AsmDepends;
* *
* @since 2.8.0 * @since 2.8.0
*/ */
@AsmDepends @DynClassDepends
@FunctionalInterface @FunctionalInterface
public interface ThrowSupplier<T> { public interface ThrowSupplier<T> {

View File

@@ -25,8 +25,8 @@ import java.util.stream.Stream;
import java.util.zip.GZIPInputStream; import java.util.zip.GZIPInputStream;
import javax.crypto.*; import javax.crypto.*;
import javax.crypto.spec.SecretKeySpec; import javax.crypto.spec.SecretKeySpec;
import org.redkale.asm.AsmDepends;
import org.redkale.convert.json.JsonConvert; import org.redkale.convert.json.JsonConvert;
import org.redkale.annotation.DynClassDepends;
/** /**
* *
@@ -1545,7 +1545,7 @@ public final class Utility {
* *
* @return Map * @return Map
*/ */
@AsmDepends @DynClassDepends
public static <K, V> HashMap<K, V> ofMap(Object... items) { public static <K, V> HashMap<K, V> ofMap(Object... items) {
HashMap<K, V> map = new LinkedHashMap<>(Math.max(1, items.length / 2)); HashMap<K, V> map = new LinkedHashMap<>(Math.max(1, items.length / 2));
int len = items.length / 2; int len = items.length / 2;
@@ -3441,7 +3441,7 @@ public final class Utility {
* *
* @return 对象 * @return 对象
*/ */
@AsmDepends(Copier.class) @DynClassDepends(Copier.class)
public static <T> T convertValue(Type type, Object value) { public static <T> T convertValue(Type type, Object value) {
if (type == null || value == null) { if (type == null || value == null) {
return (T) value; return (T) value;