feat: 数据模型引擎接口
parent
fbbe3eb251
commit
e0725466a0
|
@ -0,0 +1,12 @@
|
|||
package com.muyu.engine;
|
||||
|
||||
/**
|
||||
* 引擎 Engine
|
||||
*
|
||||
* @author LeYang
|
||||
* on 2024/5/8
|
||||
*/
|
||||
public interface Engine<V> {
|
||||
public void execution();
|
||||
public V get();
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
package com.muyu.engine.action;
|
||||
|
||||
/**
|
||||
* ActionDiscard
|
||||
*
|
||||
* @author LeYang
|
||||
* on 2024/5/8
|
||||
*/
|
||||
public class ActionDiscard extends RuntimeException{
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
package com.muyu.engine.custom;
|
||||
|
||||
import com.muyu.engine.action.ActionDiscard;
|
||||
import com.muyu.engine.scope.DataModelEngine;
|
||||
|
||||
/**
|
||||
* 自定义不能为空引擎 IsNotNullEngineCustom
|
||||
*
|
||||
* @author LeYang
|
||||
* on 2024/5/8
|
||||
*/
|
||||
public class IsNotNullEngineCustom extends DataModelEngine {
|
||||
|
||||
@Override
|
||||
public void execution() {
|
||||
Object value= getValue();
|
||||
if (value == null || "".equals(value)){
|
||||
throw new ActionDiscard();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
package com.muyu.engine.scope;
|
||||
|
||||
import com.muyu.engine.Engine;
|
||||
import com.muyu.model.DataModel;
|
||||
import com.muyu.scope.DataModelContext;
|
||||
import com.muyu.scope.model.DataProcessModel;
|
||||
|
||||
/**
|
||||
* 数据模型引擎接口 DataModelEngine
|
||||
*
|
||||
* @author LeYang
|
||||
* on 2024/5/8
|
||||
*/
|
||||
public abstract class DataModelEngine implements Engine<DataProcessModel> {
|
||||
private DataModelContext dataModelContext;
|
||||
|
||||
@Override
|
||||
public DataProcessModel get(){
|
||||
return dataModelContext.get();
|
||||
}
|
||||
|
||||
public DataModel getModel(){
|
||||
return get().getDataModel();
|
||||
}
|
||||
|
||||
public String getKey(){
|
||||
return getModel().getKey();
|
||||
}
|
||||
|
||||
public Object getValue(){
|
||||
return getModel().getValue();
|
||||
}
|
||||
public String getSourceType(){
|
||||
return getModel().getSourceType();
|
||||
}
|
||||
|
||||
public String getProcessType(){
|
||||
return getModel().getProcessType();
|
||||
}
|
||||
public Class<?> getProcessClass(){
|
||||
return getModel().getProcessClass();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
package com.muyu.engine.scope;
|
||||
|
||||
import com.muyu.engine.Engine;
|
||||
|
||||
/**
|
||||
* 数据模型引擎接口 DataSetEngine
|
||||
*
|
||||
* @author LeYang
|
||||
* on 2024/5/8
|
||||
*/
|
||||
public interface DataSetEngine extends Engine {
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
package com.muyu.engine.scope;
|
||||
|
||||
import com.muyu.engine.Engine;
|
||||
|
||||
/**
|
||||
* 数据模型引擎接口 RecordEngine
|
||||
*
|
||||
* @author LeYang
|
||||
* on 2024/5/8
|
||||
*/
|
||||
public interface RecordEngine extends Engine {
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
package com.muyu.model;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 数据模型 DataModel
|
||||
*
|
||||
* @author LeYang
|
||||
* on 2024/5/8
|
||||
*/
|
||||
@Data
|
||||
public class DataModel {
|
||||
|
||||
|
||||
/**
|
||||
* 数据键
|
||||
*/
|
||||
private String key;
|
||||
|
||||
/**
|
||||
* 数据值
|
||||
*/
|
||||
private Object value;
|
||||
|
||||
/**
|
||||
* 源标准-枚举 数据库的标准
|
||||
*/
|
||||
private String sourceType;
|
||||
|
||||
/**
|
||||
* 处理标准 枚举
|
||||
*/
|
||||
|
||||
private String processType;
|
||||
|
||||
/**
|
||||
* 处理类型
|
||||
*/
|
||||
private Class<?> processClass;
|
||||
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
package com.muyu.model;
|
||||
|
||||
/**
|
||||
* 一页 DataSetModel
|
||||
*
|
||||
* @author LeYang
|
||||
* on 2024/5/8
|
||||
*/
|
||||
public class DataSetModel {
|
||||
//[[DataModel,DataModel,DataModel],[DataModel,DataModel,DataModel]
|
||||
private RecordModel[] recordModelArr = null;
|
||||
|
||||
//创建一个新的RecordModel数组
|
||||
private DataSetModel(int recordModelLength){
|
||||
recordModelArr=new RecordModel[recordModelLength];
|
||||
}
|
||||
|
||||
private DataSetModel(RecordModel[] recordModelArr){
|
||||
recordModelArr = recordModelArr;
|
||||
}
|
||||
|
||||
public static DataSetModel build(int recordModelLength){
|
||||
return new DataSetModel(recordModelLength);
|
||||
}
|
||||
|
||||
public static DataSetModel build(RecordModel[] recordModelArr){
|
||||
return new DataSetModel(recordModelArr);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
package com.muyu.model;
|
||||
|
||||
/**
|
||||
* 数据标准 DataStandard
|
||||
*
|
||||
* @author LeYang
|
||||
* on 2024/5/8
|
||||
*/
|
||||
public interface DataStandard {
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
package com.muyu.model;
|
||||
|
||||
/**
|
||||
* 记录模型 RecordModel
|
||||
*
|
||||
* @author LeYang
|
||||
* on 2024/5/8
|
||||
*/
|
||||
public class RecordModel {
|
||||
//[DataModel,DataModel,DataModel]
|
||||
|
||||
private RecordModel(int dataModelLength){
|
||||
dataModelArr = new DataModel[dataModelLength];
|
||||
}
|
||||
|
||||
private RecordModel(DataModel[] dataModlArr){
|
||||
dataModlArr =dataModlArr;
|
||||
}
|
||||
private DataModel[] dataModelArr = null;
|
||||
|
||||
public static RecordModel build(int dataModelLength){
|
||||
return new RecordModel(dataModelLength);
|
||||
}
|
||||
|
||||
public static RecordModel build(DataModel[] dataModelArr){
|
||||
return new RecordModel(dataModelArr);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
package com.muyu.scope;
|
||||
|
||||
import com.muyu.scope.model.DataProcessModel;
|
||||
|
||||
/**
|
||||
* @Author: DongZeLiang
|
||||
* @date: 2024/4/29
|
||||
* @Description: 数据模型
|
||||
* @Version: 1.0
|
||||
*/
|
||||
public class DataModelContext implements ScopeContext <DataProcessModel>{
|
||||
|
||||
private static final ThreadLocal<DataProcessModel> THREAD_LOCAL = new ThreadLocal<>();
|
||||
|
||||
private final DataSetContext dataSetContext;
|
||||
|
||||
public DataModelContext (DataSetContext dataSetContext) {
|
||||
this.dataSetContext = dataSetContext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataProcessModel get () {
|
||||
return THREAD_LOCAL.get();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
package com.muyu.scope;
|
||||
|
||||
import com.muyu.scope.model.DataSetProcessModel;
|
||||
|
||||
/**
|
||||
* @Author: DongZeLiang
|
||||
* @date: 2024/4/29
|
||||
* @Description: 数据集
|
||||
* @Version: 1.0
|
||||
*/
|
||||
public class DataSetContext {
|
||||
|
||||
private static final ThreadLocal<DataSetProcessModel> THREAD_LOCAL = new ThreadLocal<>();
|
||||
|
||||
private final RecordContext recordContext;
|
||||
|
||||
public DataSetContext (RecordContext recordContext) {
|
||||
this.recordContext = recordContext;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
package com.muyu.scope;
|
||||
|
||||
import com.muyu.scope.model.RecordProcessModel;
|
||||
|
||||
/**
|
||||
* @Author: DongZeLiang
|
||||
* @date: 2024/4/29
|
||||
* @Description: 记录/资产模型
|
||||
* @Version: 1.0
|
||||
*/
|
||||
public class RecordContext {
|
||||
|
||||
private static final ThreadLocal<RecordProcessModel> THREAD_LOCAL = new ThreadLocal<>();
|
||||
|
||||
private final TaskContext taskContext;
|
||||
|
||||
private RecordContext (TaskContext taskContext) {
|
||||
this.taskContext = taskContext;
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
package com.muyu.scope;
|
||||
|
||||
/**
|
||||
* @Author: DongZeLiang
|
||||
* @date: 2024/5/6
|
||||
* @Description: 数据域规范
|
||||
* @Version: 1.0
|
||||
*/
|
||||
public interface ScopeContext<V> {
|
||||
|
||||
V get();
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
package com.muyu.scope;
|
||||
|
||||
/** 最大的域
|
||||
* @Author: DongZeLiang
|
||||
* @date: 2024/4/29
|
||||
* @Description: 任务上下文
|
||||
* @Version: 1.0
|
||||
*/
|
||||
public class TaskContext {
|
||||
|
||||
public static TaskContext build(){
|
||||
return new TaskContext();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
package com.muyu.scope.model;
|
||||
|
||||
import com.muyu.model.DataModel;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author: DongZeLiang
|
||||
* @date: 2024/5/5
|
||||
* @Description: 数据处理模型
|
||||
* @Version: 1.0
|
||||
*/
|
||||
@Data
|
||||
public class DataProcessModel {
|
||||
|
||||
private DataModel dataModel;
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
package com.muyu.scope.model;
|
||||
|
||||
import com.muyu.model.DataSetModel;
|
||||
|
||||
/**
|
||||
* @Author: DongZeLiang
|
||||
* @date: 2024/5/5
|
||||
* @Description: 数据集处理模型
|
||||
* @Version: 1.0
|
||||
*/
|
||||
public class DataSetProcessModel {
|
||||
|
||||
private DataSetModel dataSetModel;
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
package com.muyu.scope.model;
|
||||
|
||||
import com.muyu.model.RecordModel;
|
||||
|
||||
/**
|
||||
* @Author: DongZeLiang
|
||||
* @date: 2024/5/5
|
||||
* @Description: 行级别任务处理模型
|
||||
* @Version: 1.0
|
||||
*/
|
||||
public class RecordProcessModel {
|
||||
|
||||
private String[] keys;
|
||||
|
||||
private RecordModel recordModel;
|
||||
}
|
Loading…
Reference in New Issue