diff --git a/src/main/java/com/muyu/etl/basic/DataAccessBasic.java b/src/main/java/com/muyu/etl/basic/DataAccessBasic.java new file mode 100644 index 0000000..432b3b2 --- /dev/null +++ b/src/main/java/com/muyu/etl/basic/DataAccessBasic.java @@ -0,0 +1,30 @@ +package com.muyu.etl.basic; + +import com.muyu.etl.domain.DataStructure; + +/** + * @Author: DongZeLiang + * @date: 2024/9/9 + * @Description: 数据接入标准 + * @Version: 1.0 + */ +public interface DataAccessBasic extends TaskBasic{ + + /** + * 数据值 + * @return 返回查询的数据值 + */ + public DataStructure getDataStructure(); + + /** + * 数据记录 + * @return 数据记录 + */ + public DataStructure[] getRow(); + + /** + * 数据集 + * @return 数据集 + */ + public DataStructure[][] getRows(); +} diff --git a/src/main/java/com/muyu/etl/basic/TaskBasic.java b/src/main/java/com/muyu/etl/basic/TaskBasic.java new file mode 100644 index 0000000..d2b93ea --- /dev/null +++ b/src/main/java/com/muyu/etl/basic/TaskBasic.java @@ -0,0 +1,17 @@ +package com.muyu.etl.basic; + +import com.muyu.etl.scope.TaskScopeBasic; +import com.muyu.etl.scope.TaskScopeConfig; + +/** + * @Author: DongZeLiang + * @date: 2024/9/9 + * @Description: 任務基準 + * @Version: 1.0 + */ +public interface TaskBasic { + + public default TaskScopeConfig getScopeConfig(){ + return TaskScopeBasic.get(); + } +} diff --git a/src/main/java/com/muyu/domain/DataStructure.java b/src/main/java/com/muyu/etl/domain/DataStructure.java similarity index 88% rename from src/main/java/com/muyu/domain/DataStructure.java rename to src/main/java/com/muyu/etl/domain/DataStructure.java index 51ed796..790b402 100644 --- a/src/main/java/com/muyu/domain/DataStructure.java +++ b/src/main/java/com/muyu/etl/domain/DataStructure.java @@ -1,6 +1,6 @@ -package com.muyu.domain; +package com.muyu.etl.domain; -import com.muyu.enums.DataType; +import com.muyu.etl.enums.DataType; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/src/main/java/com/muyu/enums/DataType.java b/src/main/java/com/muyu/etl/enums/DataType.java similarity index 99% rename from src/main/java/com/muyu/enums/DataType.java rename to src/main/java/com/muyu/etl/enums/DataType.java index 71408f6..a93822f 100644 --- a/src/main/java/com/muyu/enums/DataType.java +++ b/src/main/java/com/muyu/etl/enums/DataType.java @@ -1,4 +1,4 @@ -package com.muyu.enums; +package com.muyu.etl.enums; import com.muyu.common.core.utils.StringUtils; import lombok.extern.log4j.Log4j2; diff --git a/src/main/java/com/muyu/etl/scope/TaskScopeBasic.java b/src/main/java/com/muyu/etl/scope/TaskScopeBasic.java new file mode 100644 index 0000000..e2f0779 --- /dev/null +++ b/src/main/java/com/muyu/etl/scope/TaskScopeBasic.java @@ -0,0 +1,27 @@ +package com.muyu.etl.scope; + + +import org.apache.poi.ss.formula.functions.T; + +/** + * @Author: DongZeLiang + * @date: 2024/9/9 + * @Description: 作用域标准 + * @Version: 1.0 + */ +public class TaskScopeBasic { + + private static final ThreadLocal localScope = new ThreadLocal<>(); + + public static void set(final TaskScopeConfig handler) { + localScope.set(handler); + } + + public static TaskScopeConfig get() { + return localScope.get(); + } + + public static void remove(){ + localScope.remove(); + } +} diff --git a/src/main/java/com/muyu/etl/scope/TaskScopeConfig.java b/src/main/java/com/muyu/etl/scope/TaskScopeConfig.java new file mode 100644 index 0000000..cdc355e --- /dev/null +++ b/src/main/java/com/muyu/etl/scope/TaskScopeConfig.java @@ -0,0 +1,42 @@ +package com.muyu.etl.scope; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.concurrent.LinkedBlockingDeque; + +/** + * @Author: DongZeLiang + * @date: 2024/9/9 + * @Description: 作用域存儲配置對象 + * @Version: 1.0 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class TaskScopeConfig { + + /** + * 任務ID + */ + private String taskId; + + + private LinkedBlockingDeque taskNodeQueue = new LinkedBlockingDeque(); + + public void addTaskNode(Object obj){ + this.taskNodeQueue.add(obj); + } + + public boolean hashTaskNodeNext(){ + return !taskNodeQueue.isEmpty(); + } + + private T nextTaskNode(){ + return (T) taskNodeQueue.poll(); + } + +}