Skip to content

Commit 039b631

Browse files
committed
refactor: 优化命令支持
1 parent 9bec58f commit 039b631

File tree

7 files changed

+90
-1
lines changed

7 files changed

+90
-1
lines changed

jetlinks-sdk-api/src/main/java/org/jetlinks/sdk/server/commons/cmd/AddCommand.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,25 @@
1414

1515
public class AddCommand<T> extends BatchDataCommand<T, AddCommand<T>> implements GenericInputCommand<T> {
1616

17+
/**
18+
* 请使用{@link AddCommand#of(Class)}创建命令
19+
*/
20+
@Deprecated
21+
public AddCommand() {
22+
}
23+
24+
/**
25+
* 使用指定的类型创建命令,执行命令后会将执行结果转换为指定类型
26+
*
27+
* @param type 类型
28+
* @param <T> 类型
29+
* @return AddCommand
30+
*/
31+
public static <T> AddCommand<T> of(Class<T> type) {
32+
return new AddCommand<T>()
33+
.withConverter(CommandUtils.createConverter(ResolvableType.forType(type)));
34+
}
35+
1736
public static FunctionMetadata metadata(Class<?> dataType) {
1837
return metadata(ResolvableType.forClass(dataType));
1938
}

jetlinks-sdk-api/src/main/java/org/jetlinks/sdk/server/commons/cmd/DeleteByIdCommand.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,27 @@
2323
@Schema(title = "根据ID删除")
2424
public class DeleteByIdCommand<T> extends OperationByIdCommand<T, DeleteByIdCommand<T>> {
2525

26+
27+
/**
28+
* 请使用{@link DeleteByIdCommand#of(Class)}创建命令
29+
*/
30+
@Deprecated
31+
public DeleteByIdCommand() {
32+
}
33+
34+
/**
35+
* 使用指定的类型创建命令,执行命令后会将执行结果转换为指定类型
36+
*
37+
* @param type 类型
38+
* @param <T> 类型
39+
* @return AddCommand
40+
*/
41+
public static <T> DeleteByIdCommand<T> of(Class<T> type) {
42+
return new DeleteByIdCommand<T>()
43+
.withConverter(CommandUtils.createConverter(ResolvableType.forType(type)));
44+
}
45+
46+
2647
public static FunctionMetadata metadata(Consumer<SimpleFunctionMetadata> custom) {
2748
SimpleFunctionMetadata metadata = new SimpleFunctionMetadata();
2849
//DeleteById

jetlinks-sdk-api/src/main/java/org/jetlinks/sdk/server/commons/cmd/QueryByIdCommand.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,27 @@
2323
@Schema(title = "根据ID查询")
2424
public class QueryByIdCommand<T> extends OperationByIdCommand<T, QueryByIdCommand<T>> {
2525

26+
27+
/**
28+
* 请使用{@link DeleteByIdCommand#of(Class)}创建命令
29+
*/
30+
@Deprecated
31+
public QueryByIdCommand() {
32+
}
33+
34+
/**
35+
* 使用指定的类型创建命令,执行命令后会将执行结果转换为指定类型
36+
*
37+
* @param type 类型
38+
* @param <T> 类型
39+
* @return AddCommand
40+
*/
41+
public static <T> QueryByIdCommand<T> of(Class<T> type) {
42+
return new QueryByIdCommand<T>()
43+
.withConverter(CommandUtils.createConverter(ResolvableType.forType(type)));
44+
}
45+
46+
2647
public static FunctionMetadata metadata(Consumer<SimpleFunctionMetadata> custom) {
2748
SimpleFunctionMetadata metadata = new SimpleFunctionMetadata();
2849
//QueryById

jetlinks-sdk-api/src/main/java/org/jetlinks/sdk/server/commons/cmd/QueryListCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
public class QueryListCommand<T> extends QueryCommand<Flux<T>, QueryListCommand<T>> {
3232

3333
/**
34-
* visible for reflection
34+
* 请使用{@link QueryListCommand#of(Class)}创建命令
3535
*
3636
* @see QueryListCommand#of(Class)
3737
* @see QueryListCommand#of(Function)

jetlinks-sdk-api/src/main/java/org/jetlinks/sdk/server/commons/cmd/QueryPagerCommand.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,13 @@
3737
public class QueryPagerCommand<T> extends QueryCommand<Mono<PagerResult<T>>, QueryPagerCommand<T>> {
3838

3939

40+
/**
41+
* 请使用{@link QueryPagerCommand#of(Class)}创建命令
42+
*/
43+
@Deprecated
44+
public QueryPagerCommand() {
45+
}
46+
4047
public static FunctionMetadata metadata(Class<?> dataType) {
4148
return metadata(ResolvableType.forClass(dataType));
4249
}

jetlinks-sdk-api/src/main/java/org/jetlinks/sdk/server/commons/cmd/SaveAndEnableCommand.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,13 @@
1414
@Schema(description = "批量创建数据并激活")
1515
public class SaveAndEnableCommand<T> extends BatchDataCommand<T, SaveAndEnableCommand<T>> {
1616

17+
/**
18+
* 请使用{@link SaveAndEnableCommand#of(Class)}创建命令
19+
*/
20+
@Deprecated
21+
public SaveAndEnableCommand() {
22+
}
23+
1724
public static <T> SaveAndEnableCommand<T> of(Function<Object, T> converter) {
1825
return new SaveAndEnableCommand<T>().withConverter(converter);
1926
}

jetlinks-sdk-api/src/main/java/org/jetlinks/sdk/server/commons/cmd/SaveCommand.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,20 @@
1515
@Schema(title = "保存数据", description = "ID对应的数据不存在则新增,否则为修改。支持批量保存。", example = "{\"data\":[ ]}")
1616
public class SaveCommand<T> extends BatchDataCommand<T, SaveCommand<T>> {
1717

18+
/**
19+
* 请使用{@link SaveCommand#of(Class)}创建命令
20+
*/
21+
@Deprecated
22+
public SaveCommand() {
23+
}
24+
25+
public static <T> SaveCommand<T> of(Class<T> type) {
26+
return of(CommandUtils.createConverter(ResolvableType.forClass(type)));
27+
}
28+
29+
public static <T> SaveCommand<T> of(Function<Object, T> converter) {
30+
return new SaveCommand<T>().withConverter(converter);
31+
}
1832

1933
public static FunctionMetadata metadata(Class<?> dataType) {
2034
return metadata(ResolvableType.forClass(dataType));

0 commit comments

Comments
 (0)