diff --git a/muyu-modules/muyu-data-access/muyu-data-access-client/pom.xml b/muyu-modules/muyu-data-access/muyu-data-access-client/pom.xml
new file mode 100644
index 0000000..7b4b6bf
--- /dev/null
+++ b/muyu-modules/muyu-data-access/muyu-data-access-client/pom.xml
@@ -0,0 +1,27 @@
+
+
+ 4.0.0
+
+ com.muyu
+ muyu-data-access
+ 3.6.3
+
+
+ muyu-data-access-client
+
+
+ 17
+ 17
+ UTF-8
+
+
+
+
+ com.muyu
+ muyu-data-access-remote
+ 3.6.3
+
+
+
diff --git a/muyu-modules/muyu-data-access/muyu-data-access-client/src/main/java/com/muyu/data/access/client/config/DataAccessClientConfig.java b/muyu-modules/muyu-data-access/muyu-data-access-client/src/main/java/com/muyu/data/access/client/config/DataAccessClientConfig.java
new file mode 100644
index 0000000..4bc6dd1
--- /dev/null
+++ b/muyu-modules/muyu-data-access/muyu-data-access-client/src/main/java/com/muyu/data/access/client/config/DataAccessClientConfig.java
@@ -0,0 +1,12 @@
+package com.muyu.data.access.client.config;
+
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Import;
+
+@ComponentScan
+@Import(value = {DataAccessClientRunner.class})
+public class DataAccessClientConfig {
+
+
+
+}
diff --git a/muyu-modules/muyu-data-access/muyu-data-access-client/src/main/java/com/muyu/data/access/client/config/DataAccessClientRunner.java b/muyu-modules/muyu-data-access/muyu-data-access-client/src/main/java/com/muyu/data/access/client/config/DataAccessClientRunner.java
new file mode 100644
index 0000000..5bd6af0
--- /dev/null
+++ b/muyu-modules/muyu-data-access/muyu-data-access-client/src/main/java/com/muyu/data/access/client/config/DataAccessClientRunner.java
@@ -0,0 +1,39 @@
+package com.muyu.data.access.client.config;
+
+import com.muyu.common.core.domain.Result;
+import com.muyu.common.core.web.page.TableDataInfo;
+import com.muyu.etl.domain.DataSource;
+import com.nuyu.data.access.remote.RemoteDataAccessService;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+
+import javax.sql.DataSource;
+import java.sql.Connection;
+import java.util.List;
+
+@Log4j2
+public class DataAccessClientRunner implements ApplicationRunner {
+
+ @Autowired
+ private RemoteDataAccessService remoteDataAccessService;
+ @Override
+ public void run(ApplicationArguments args) throws Exception {
+ Result> result = remoteDataAccessService.list(new DataSource());
+ List dataSourceList = result.getData().getRows();
+ MyDataSource.info(dataSourceList);
+ String key=dataSourceList.get(0).getDataSourceName()+"_"+dataSourceList.get(0).getId();
+ System.out.println("查看连接池:");
+ MyDataSource.size(key);
+ Thread.sleep(500);
+ System.out.println("取出一个链接,查看连接池:");
+ Connection con = MyDataSource.getCon(key);
+ MyDataSource.size(key);
+ Thread.sleep(500);
+ System.out.println("返回一个链接,查看连接池:");
+ MyDataSource.addBack(con);
+ MyDataSource.size(key);
+ }
+
+}
diff --git a/muyu-modules/muyu-data-access/muyu-data-access-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/muyu-modules/muyu-data-access/muyu-data-access-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 0000000..578ea1f
--- /dev/null
+++ b/muyu-modules/muyu-data-access/muyu-data-access-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@
+com.muyu.etl.config.DataAccessClientConfig
diff --git a/muyu-modules/muyu-data-access/muyu-data-access-common/pom.xml b/muyu-modules/muyu-data-access/muyu-data-access-common/pom.xml
new file mode 100644
index 0000000..6ec9e13
--- /dev/null
+++ b/muyu-modules/muyu-data-access/muyu-data-access-common/pom.xml
@@ -0,0 +1,100 @@
+
+
+ 4.0.0
+
+ com.muyu
+ muyu-data-access
+ 3.6.3
+
+
+ muyu-data-access-common
+
+
+ 17
+ 17
+ UTF-8
+
+
+
+
+
+ com.alibaba
+ druid
+ 1.2.6
+
+
+ com.muyu
+ muyu-modules-system
+ 3.6.3
+
+
+
+ org.postgresql
+ postgresql
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-config
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-sentinel
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+
+
+ io.springfox
+ springfox-swagger-ui
+ ${swagger.fox.version}
+
+
+
+
+ com.mysql
+ mysql-connector-j
+
+
+
+
+ com.muyu
+ muyu-common-datasource
+
+
+
+
+ com.muyu
+ muyu-common-datascope
+
+
+
+
+ com.muyu
+ muyu-common-log
+
+
+
+
+ com.muyu
+ muyu-common-swagger
+
+
+
+
diff --git a/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/Main.java b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/Main.java
new file mode 100644
index 0000000..95690d4
--- /dev/null
+++ b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/Main.java
@@ -0,0 +1,7 @@
+package com.muyu;
+
+public class Main {
+ public static void main(String[] args) {
+ System.out.println("Hello world!");
+ }
+}
\ No newline at end of file
diff --git a/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/datasource/MyDataSource.java b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/datasource/MyDataSource.java
new file mode 100644
index 0000000..056a25c
--- /dev/null
+++ b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/datasource/MyDataSource.java
@@ -0,0 +1,77 @@
+package com.muyu.etl.datasource;
+
+import com.alibaba.druid.pool.DruidDataSource;
+import com.muyu.etl.domain.DataSource;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.stereotype.Component;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * @ClassName MyDataSource
+ * @Description 描述
+ * @Author Xin.Yao
+ * @Date 2024/5/9 19:36
+ */
+@Component
+@Log4j2
+public class MyDataSource {
+ private static HashMap pools = new HashMap<>();
+
+ public static void info(List dataSourceList){
+ dataSourceList.stream().forEach(dataSource -> {
+ String jdbcUrl = "jdbc:"+dataSource.getType().toLowerCase()+"://"+dataSource.getLinkAddress()+":"+dataSource.getPort()+"/"+dataSource.getDatabaseName();
+ // 创建德鲁伊数据源
+ DruidDataSource druidSource = new DruidDataSource();
+
+ // 配置数据库连接信息
+ druidSource.setUrl(jdbcUrl);
+ druidSource.setUsername(dataSource.getUsername());
+ druidSource.setPassword(dataSource.getPassword());
+ // 配置连接池大小
+ druidSource.setInitialSize(Integer.valueOf(dataSource.getInitNum().toString()));
+ druidSource.setMinIdle(5);
+ druidSource.setMaxActive(Integer.valueOf(dataSource.getMaxNum().toString()));
+ try {
+ druidSource.init();
+ } catch (SQLException e) {
+ throw new RuntimeException(e);
+ }
+ pools.put(dataSource.getDataSourceName()+"_"+dataSource.getId(),druidSource);
+ });
+
+ }
+
+ public static Connection getCon(String key){
+ try {
+ //根据key获取连接池
+ DruidDataSource druidDataSource = pools.get(key);
+ // 从连接池中获取第一个链接
+ return druidDataSource.getConnection();
+ } catch (SQLException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ // 4 提供非静态方法,用来归还链接
+ public static void addBack(Connection connection){
+ try {
+ connection.close();
+ } catch (SQLException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ public static void size(String key){
+ //根据key获取连接池
+ DruidDataSource druidDataSource = pools.get(key);
+ //获取正在使用的连接数量
+ int activeCount = druidDataSource.getActiveCount();
+ //获取线程池中的连接数量
+ int poolingCount = druidDataSource.getPoolingCount();
+ log.info(key+" 连接池中正在使用连接: "+activeCount+"个 ,线程池中线程数量: "+poolingCount+"个");
+ }
+}
diff --git a/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/AssetAccredit.java b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/AssetAccredit.java
new file mode 100644
index 0000000..f49828b
--- /dev/null
+++ b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/AssetAccredit.java
@@ -0,0 +1,40 @@
+package com.muyu.etl.domain;
+
+import com.muyu.common.core.annotation.Excel;
+import com.muyu.common.core.web.domain.BaseEntity;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+/**
+ * 【请填写功能名称】对象 asset_accredit
+ *
+ * @author ruoyi
+ * @date 2024-04-25
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@SuperBuilder
+public class AssetAccredit extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** $column.columnComment */
+ private Long id;
+
+ /** 部门id */
+ @Excel(name = "部门id")
+ private Long deptId;
+
+ /** 数据表id */
+ @Excel(name = "数据表id")
+ private Long dataAssetId;
+
+
+ /** 用户id */
+ @Excel(name = "用户id")
+ private Long userId;
+
+}
diff --git a/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/AssetModel.java b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/AssetModel.java
new file mode 100644
index 0000000..ab461cb
--- /dev/null
+++ b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/AssetModel.java
@@ -0,0 +1,86 @@
+package com.muyu.etl.domain;
+
+import com.muyu.common.core.annotation.Excel;
+import com.muyu.common.core.web.domain.BaseEntity;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import java.util.List;
+
+/**
+ * 【请填写功能名称】对象 asset_model
+ *
+ * @author ruoyi
+ * @date 2024-04-22
+ */
+@EqualsAndHashCode(callSuper = true)
+@SuperBuilder
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class AssetModel extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** 主键 */
+ private Long id;
+
+ /** 数据资产ID */
+ @Excel(name = "数据资产ID")
+ private Long dataAssetId;
+
+ /** 字段名 */
+ @Excel(name = "字段名")
+ private String name;
+
+ /** 字段备注 */
+ @Excel(name = "字段备注")
+ private String comment;
+
+ /** 是否主键 */
+ @Excel(name = "是否主键")
+ private String isPrimaryKey;
+
+ /** 数据类型 */
+ @Excel(name = "数据类型")
+ private String type;
+
+ /** 映射数据类型 */
+ @Excel(name = "映射数据类型")
+ private String mappingType;
+
+ /** 长度 */
+ @Excel(name = "长度")
+ private String length;
+
+ /** 小数位 */
+ @Excel(name = "小数位")
+ private String decimalPlaces;
+
+ /** 是否不可为空 */
+ @Excel(name = "是否不可为空")
+ private String isNull;
+
+ /** 是否字典 */
+ @Excel(name = "是否字典")
+ private String isDict;
+
+ /** 默认值 */
+ @Excel(name = "默认值")
+ private String defaultValue;
+
+ /** 字典key */
+ @Excel(name = "字典key")
+ private String dictKey;
+ /** 字典id */
+ @Excel(name = "字典key")
+ private Long dictionaryId;
+
+ /** 字典信息 */
+ @Excel(name = "字典信息")
+ private List dictionaryDatas;
+
+}
diff --git a/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/DataAsset.java b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/DataAsset.java
new file mode 100644
index 0000000..cb31ab0
--- /dev/null
+++ b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/DataAsset.java
@@ -0,0 +1,68 @@
+package com.muyu.etl.domain;
+
+import com.muyu.common.core.annotation.Excel;
+import com.muyu.common.core.web.domain.BaseEntity;
+import com.muyu.common.security.utils.SecurityUtils;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Date;
+
+/**
+ * 【请填写功能名称】对象 data_asset
+ *
+ * @author ruoyi
+ * @date 2024-04-22
+ */
+@SuperBuilder
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class DataAsset extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** 主键 */
+ private Long id;
+
+ /** 数据接入ID */
+ @Excel(name = "数据接入ID")
+ private Long dataSourceId;
+
+ /** 表名称 */
+ @Excel(name = "表名称")
+ private String tableName;
+
+ /** 表备注 */
+ @Excel(name = "表备注")
+ private String tableComment;
+
+ /** 数据量 */
+ @Excel(name = "数据量")
+ private Long tableCount;
+
+ /** 资产模型 */
+ @Excel(name = "资产模型")
+ private Long fields;
+
+ public DataAsset dataAssetBuilder(DataSource dataSource, ResultSet resultSet) {
+ try {
+ return DataAsset.builder()
+ .tableName(resultSet.getString("t_name"))
+ .tableComment(resultSet.getString("table_comment") == null ? "-":resultSet.getString("table_comment"))
+ .tableCount(Long.valueOf(resultSet.getString("table_rows")))
+ .fields(Long.valueOf(resultSet.getString("fields")))
+ .dataSourceId(dataSource.getId())
+ .createBy(SecurityUtils.getUsername())
+ .createTime(new Date())
+ .build();
+ } catch (SQLException e) {
+ throw new RuntimeException(e);
+ }
+
+ }
+}
diff --git a/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/DataSource.java b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/DataSource.java
new file mode 100644
index 0000000..145eec5
--- /dev/null
+++ b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/DataSource.java
@@ -0,0 +1,83 @@
+package com.muyu.etl.domain;
+
+import com.muyu.common.core.annotation.Excel;
+import com.muyu.common.core.web.domain.BaseEntity;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+/**
+ * 【请填写功能名称】对象 data_source
+ *
+ * @author ruoyi
+ * @date 2024-04-20
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@SuperBuilder
+public class DataSource extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** $column.columnComment */
+ private Long id;
+
+ /** $column.columnComment */
+ private String dataSourceName;
+
+ /** $column.columnComment */
+ private String linkAddress;
+
+ /** $column.columnComment */
+ private String port;
+ private String sql;
+
+ /** $column.columnComment */
+ private String databaseName;
+
+ /** $column.columnComment */
+ private String username;
+
+ /** $column.columnComment */
+ private String password;
+
+ private String tableName;
+
+ /** 数据连接参数 */
+ @Excel(name = "数据连接参数")
+ private String connectionParam;
+
+ /** 初始连接数量 */
+ @Excel(name = "初始连接数量")
+ private Long initNum;
+
+ /** 最大连接数量 */
+ @Excel(name = "最大连接数量")
+ private Long maxNum;
+ private Long count;
+
+ /** 最大等待时间 */
+ @Excel(name = "最大等待时间")
+ private Long maxWaitTime;
+
+ /** 最大等待次数 */
+ @Excel(name = "最大等待次数")
+ private Long maxWaitSize;
+
+ /** $column.columnComment */
+ private String type;
+
+ /** 数据来源名称 */
+ @Excel(name = "数据来源名称")
+ private String systemName;
+ /** 连接驱动名称 */
+ @Excel(name = "连接驱动名称")
+ private String jdbcDriver;
+
+ /** 模式名称 */
+ @Excel(name = "数据来源名称")
+ private String modeName;
+
+}
diff --git a/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/Dictionary.java b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/Dictionary.java
new file mode 100644
index 0000000..d95a137
--- /dev/null
+++ b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/Dictionary.java
@@ -0,0 +1,45 @@
+package com.muyu.etl.domain;
+
+import com.muyu.common.core.annotation.Excel;
+import com.muyu.common.core.web.domain.BaseEntity;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import java.util.List;
+
+/**
+ * 【请填写功能名称】对象 dictionary
+ *
+ * @author ruoyi
+ * @date 2024-04-24
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@SuperBuilder
+public class Dictionary extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** $column.columnComment */
+ private Long id;
+
+ /** 字典名称 */
+ @Excel(name = "字典名称")
+ private String dictionaryName;
+
+ /** 字典key */
+ @Excel(name = "字典key")
+ private String dictionaryKey;
+
+ /** 数据源ID */
+ @Excel(name = "数据源ID")
+ private Long dataSourceId;
+
+ /** 字典数据集合 */
+ @Excel(name = "数据源ID")
+ private List dictionaryDataList;
+
+}
diff --git a/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/DictionaryData.java b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/DictionaryData.java
new file mode 100644
index 0000000..01277d0
--- /dev/null
+++ b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/DictionaryData.java
@@ -0,0 +1,43 @@
+package com.muyu.etl.domain;
+
+import com.muyu.common.core.annotation.Excel;
+import com.muyu.common.core.web.domain.BaseEntity;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+/**
+ * 【请填写功能名称】对象 dictionary_data
+ *
+ * @author ruoyi
+ * @date 2024-04-24
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@SuperBuilder
+public class DictionaryData extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** $column.columnComment */
+ private Long id;
+
+ /** 字典表ID */
+ @Excel(name = "字典表ID")
+ private Long dictionaryId;
+
+ /** 字典标签 */
+ @Excel(name = "字典标签")
+ private String label;
+
+ /** 字典值 */
+ @Excel(name = "字典值")
+ private String val;
+
+ /** 是否修改 */
+ @Excel(name = "字典值")
+ private Boolean isEdit=false;
+
+}
diff --git a/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/SourceAccredit.java b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/SourceAccredit.java
new file mode 100644
index 0000000..35d929a
--- /dev/null
+++ b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/SourceAccredit.java
@@ -0,0 +1,39 @@
+package com.muyu.etl.domain;
+
+import com.muyu.common.core.annotation.Excel;
+import com.muyu.common.core.web.domain.BaseEntity;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+/**
+ * 【请填写功能名称】对象 source_accredit
+ *
+ * @author ruoyi
+ * @date 2024-04-25
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@SuperBuilder
+public class SourceAccredit extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** $column.columnComment */
+ private Long id;
+
+ /** 部门id */
+ @Excel(name = "部门id")
+ private Long deptId;
+
+ /** 数据源id */
+ @Excel(name = "数据源id")
+ private Long dataSourceId;
+
+
+ /** 用户id */
+ @Excel(name = "用户id")
+ private Long userId;
+}
diff --git a/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/custom/AssetsModule.java b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/custom/AssetsModule.java
new file mode 100644
index 0000000..a7230b5
--- /dev/null
+++ b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/custom/AssetsModule.java
@@ -0,0 +1,35 @@
+package com.muyu.etl.domain.custom;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName AssetsModule
+ * @Description 描述
+ * @Author Xin.Yao
+ * @Date 2024/4/21 9:54
+ */
+@Data
+@SuperBuilder
+@AllArgsConstructor
+@NoArgsConstructor
+public class AssetsModule {
+ private HashMap structure;
+ private List