增加Nonnull、Nullable注解
This commit is contained in:
20
src/main/java/org/redkale/annotation/Nonnull.java
Normal file
20
src/main/java/org/redkale/annotation/Nonnull.java
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.redkale.annotation;
|
||||||
|
|
||||||
|
import java.lang.annotation.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* 详情见: https://redkale.org
|
||||||
|
*
|
||||||
|
* @author zhangjx
|
||||||
|
*
|
||||||
|
* @since 2.8.0
|
||||||
|
*/
|
||||||
|
@Documented
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
public @interface Nonnull {
|
||||||
|
|
||||||
|
}
|
||||||
20
src/main/java/org/redkale/annotation/Nullable.java
Normal file
20
src/main/java/org/redkale/annotation/Nullable.java
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.redkale.annotation;
|
||||||
|
|
||||||
|
import java.lang.annotation.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* 详情见: https://redkale.org
|
||||||
|
*
|
||||||
|
* @author zhangjx
|
||||||
|
*
|
||||||
|
* @since 2.8.0
|
||||||
|
*/
|
||||||
|
@Documented
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
public @interface Nullable {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -10,8 +10,8 @@ import static java.lang.annotation.ElementType.TYPE;
|
|||||||
import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
||||||
import java.lang.annotation.*;
|
import java.lang.annotation.*;
|
||||||
import java.lang.reflect.*;
|
import java.lang.reflect.*;
|
||||||
import java.net.InetSocketAddress;
|
import java.net.*;
|
||||||
import java.nio.channels.CompletionHandler;
|
import java.nio.channels.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import org.redkale.annotation.*;
|
import org.redkale.annotation.*;
|
||||||
import org.redkale.annotation.ResourceType;
|
import org.redkale.annotation.ResourceType;
|
||||||
@@ -19,10 +19,10 @@ import static org.redkale.asm.ClassWriter.COMPUTE_FRAMES;
|
|||||||
import org.redkale.asm.*;
|
import org.redkale.asm.*;
|
||||||
import static org.redkale.asm.Opcodes.*;
|
import static org.redkale.asm.Opcodes.*;
|
||||||
import org.redkale.asm.Type;
|
import org.redkale.asm.Type;
|
||||||
import org.redkale.convert.Convert;
|
import org.redkale.convert.*;
|
||||||
import org.redkale.mq.*;
|
import org.redkale.mq.*;
|
||||||
import org.redkale.net.TransportFactory;
|
import org.redkale.net.*;
|
||||||
import org.redkale.net.http.WebSocketNode;
|
import org.redkale.net.http.*;
|
||||||
import org.redkale.net.sncp.SncpServiceInfo.SncpServiceAction;
|
import org.redkale.net.sncp.SncpServiceInfo.SncpServiceAction;
|
||||||
import org.redkale.service.*;
|
import org.redkale.service.*;
|
||||||
import org.redkale.util.*;
|
import org.redkale.util.*;
|
||||||
@@ -726,21 +726,23 @@ public abstract class Sncp {
|
|||||||
*
|
*
|
||||||
* private AnyValue _redkale_conf;
|
* private AnyValue _redkale_conf;
|
||||||
*
|
*
|
||||||
* private OldSncpClient _redkale_client;
|
* private SncpClient _redkale_client;
|
||||||
|
*
|
||||||
|
* private SncpServiceInfo _redkale_sncpInfo;
|
||||||
*
|
*
|
||||||
* @Override
|
* @Override
|
||||||
* public void createSomeThing(TestBean bean){
|
* public void createSomeThing(TestBean bean){
|
||||||
* _redkale_client.remote(0, bean);
|
* _redkale_client.remote(_redkale_sncpInfo, 0, bean);
|
||||||
* }
|
* }
|
||||||
*
|
*
|
||||||
* @Override
|
* @Override
|
||||||
* public String findSomeThing(){
|
* public String findSomeThing(){
|
||||||
* return _redkale_client.remote(1);
|
* return _redkale_client.remote(_redkale_sncpInfo, 1);
|
||||||
* }
|
* }
|
||||||
*
|
*
|
||||||
* @Override
|
* @Override
|
||||||
* public String updateSomeThing(String id){
|
* public String updateSomeThing(String id){
|
||||||
* return _redkale_client.remote(2, id);
|
* return _redkale_client.remote(_redkale_sncpInfo, 2, id);
|
||||||
* }
|
* }
|
||||||
* }
|
* }
|
||||||
* </pre></blockquote>
|
* </pre></blockquote>
|
||||||
|
|||||||
@@ -5,23 +5,23 @@
|
|||||||
*/
|
*/
|
||||||
package org.redkale.source;
|
package org.redkale.source;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.*;
|
||||||
import java.math.*;
|
import java.math.*;
|
||||||
import java.sql.SQLException;
|
import java.sql.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.*;
|
import java.util.concurrent.*;
|
||||||
import java.util.concurrent.atomic.*;
|
import java.util.concurrent.atomic.*;
|
||||||
import java.util.function.*;
|
import java.util.function.*;
|
||||||
import java.util.logging.*;
|
import java.util.logging.*;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.*;
|
||||||
import org.redkale.annotation.AutoLoad;
|
import org.redkale.annotation.AutoLoad;
|
||||||
import org.redkale.annotation.*;
|
import org.redkale.annotation.*;
|
||||||
import org.redkale.annotation.ResourceListener;
|
import org.redkale.annotation.ResourceListener;
|
||||||
import org.redkale.annotation.ResourceType;
|
import org.redkale.annotation.ResourceType;
|
||||||
import static org.redkale.boot.Application.*;
|
import static org.redkale.boot.Application.*;
|
||||||
import org.redkale.net.AsyncGroup;
|
import org.redkale.net.*;
|
||||||
import org.redkale.persistence.Table;
|
import org.redkale.persistence.*;
|
||||||
import org.redkale.service.Local;
|
import org.redkale.service.*;
|
||||||
import org.redkale.source.EntityInfo.EntityColumn;
|
import org.redkale.source.EntityInfo.EntityColumn;
|
||||||
import org.redkale.util.*;
|
import org.redkale.util.*;
|
||||||
|
|
||||||
@@ -2528,7 +2528,18 @@ public abstract class AbstractDataSqlSource extends AbstractDataSource implement
|
|||||||
//----------------------------- find -----------------------------
|
//----------------------------- find -----------------------------
|
||||||
@Override
|
@Override
|
||||||
public <T> T[] finds(Class<T> clazz, final SelectColumn selects, Serializable... pks) {
|
public <T> T[] finds(Class<T> clazz, final SelectColumn selects, Serializable... pks) {
|
||||||
return findsAsync(clazz, selects, pks).join();
|
final EntityInfo<T> info = loadEntityInfo(clazz);
|
||||||
|
if (pks == null || pks.length == 0) {
|
||||||
|
return info.getArrayer().apply(0);
|
||||||
|
}
|
||||||
|
final EntityCache<T> cache = info.getCache();
|
||||||
|
if (cache != null) {
|
||||||
|
T[] rs = selects == null ? cache.finds(pks) : cache.finds(selects, pks);
|
||||||
|
if (cache.isFullLoaded() || rs != null) {
|
||||||
|
return rs;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return findsDBAsync(info, selects, pks).join();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -5,11 +5,11 @@
|
|||||||
*/
|
*/
|
||||||
package org.redkale.source;
|
package org.redkale.source;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.*;
|
import java.util.concurrent.*;
|
||||||
import java.util.concurrent.atomic.*;
|
import java.util.concurrent.atomic.*;
|
||||||
import java.util.concurrent.locks.ReentrantLock;
|
import java.util.concurrent.locks.*;
|
||||||
import java.util.function.*;
|
import java.util.function.*;
|
||||||
import java.util.logging.*;
|
import java.util.logging.*;
|
||||||
import java.util.stream.*;
|
import java.util.stream.*;
|
||||||
@@ -128,6 +128,13 @@ public final class EntityCache<T> {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void fullLoad() {
|
||||||
|
CompletableFuture<List<T>> future = fullLoadAsync();
|
||||||
|
if (future != null) {
|
||||||
|
future.join();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public CompletableFuture<List<T>> fullLoadAsync() {
|
public CompletableFuture<List<T>> fullLoadAsync() {
|
||||||
if (this.fullloaded) {
|
if (this.fullloaded) {
|
||||||
return this.loadFuture;
|
return this.loadFuture;
|
||||||
@@ -213,6 +220,10 @@ public final class EntityCache<T> {
|
|||||||
return fullloaded;
|
return fullloaded;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int size() {
|
||||||
|
return map.size();
|
||||||
|
}
|
||||||
|
|
||||||
public T find(Serializable pk) {
|
public T find(Serializable pk) {
|
||||||
if (pk == null) {
|
if (pk == null) {
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -5,11 +5,11 @@
|
|||||||
*/
|
*/
|
||||||
package org.redkale.source;
|
package org.redkale.source;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.*;
|
||||||
import java.lang.reflect.*;
|
import java.lang.reflect.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.*;
|
import java.util.concurrent.*;
|
||||||
import java.util.concurrent.locks.ReentrantLock;
|
import java.util.concurrent.locks.*;
|
||||||
import java.util.function.*;
|
import java.util.function.*;
|
||||||
import java.util.logging.*;
|
import java.util.logging.*;
|
||||||
import org.redkale.annotation.Comment;
|
import org.redkale.annotation.Comment;
|
||||||
@@ -242,7 +242,7 @@ public final class EntityInfo<T> {
|
|||||||
if (fullloader == null) {
|
if (fullloader == null) {
|
||||||
throw new IllegalArgumentException(clazz.getName() + " auto loader is illegal");
|
throw new IllegalArgumentException(clazz.getName() + " auto loader is illegal");
|
||||||
}
|
}
|
||||||
rs.cache.fullLoadAsync();
|
rs.cache.fullLoad();
|
||||||
}
|
}
|
||||||
return rs;
|
return rs;
|
||||||
} finally {
|
} finally {
|
||||||
|
|||||||
@@ -5,9 +5,10 @@
|
|||||||
*/
|
*/
|
||||||
package org.redkale.test.service;
|
package org.redkale.test.service;
|
||||||
|
|
||||||
import java.nio.channels.CompletionHandler;
|
import java.nio.channels.*;
|
||||||
|
import org.redkale.boot.*;
|
||||||
import org.redkale.net.sncp.*;
|
import org.redkale.net.sncp.*;
|
||||||
import org.redkale.service.Service;
|
import org.redkale.service.*;
|
||||||
import org.redkale.util.*;
|
import org.redkale.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -19,13 +20,14 @@ public class TestService implements Service {
|
|||||||
// public boolean change(TestBean bean, String name, int id) {
|
// public boolean change(TestBean bean, String name, int id) {
|
||||||
// return false;
|
// return false;
|
||||||
// }
|
// }
|
||||||
|
|
||||||
public void change(CompletionHandler<Boolean, TestBean> handler, TestBean bean, String name, int id) {
|
public void change(CompletionHandler<Boolean, TestBean> handler, TestBean bean, String name, int id) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) throws Throwable {
|
public static void main(String[] args) throws Throwable {
|
||||||
|
final Application application = Application.create(true);
|
||||||
SncpServer cserver = new SncpServer();
|
SncpServer cserver = new SncpServer();
|
||||||
|
cserver.getResourceFactory().register(application);
|
||||||
cserver.addSncpServlet(new TestService());
|
cserver.addSncpServlet(new TestService());
|
||||||
cserver.init(AnyValue.DefaultAnyValue.create("port", 5577));
|
cserver.init(AnyValue.DefaultAnyValue.create("port", 5577));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user