test_class.declarator: TABLE_NAME = "t_encrypt"
test_class.modifier: private static final
test_class.original_string: private static final String TABLE_NAME = "t_encrypt";
test_class.type: String
test_class.var_name: TABLE_NAME
test_class.declarator: databaseType
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private DatabaseType databaseType;
test_class.type: DatabaseType
test_class.var_name: databaseType
test_class.declarator: dataSource
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private DataSource dataSource;
test_class.type: DataSource
test_class.var_name: dataSource
test_class.declarator: props
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private ConfigurationProperties props;
test_class.type: ConfigurationProperties
test_class.var_name: props
test_class.file: shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/test/java/org/apache/shardingsphere/encrypt/metadata/EncryptMetaDataLoaderTest.java
test_class.identifier: EncryptMetaDataLoaderTest
test_case.body: @Test
      public void assertLoad() throws SQLException {
          EncryptRule rule = createEncryptRule();
          EncryptMetaDataLoader loader = (EncryptMetaDataLoader) OrderedSPIRegistry.getRegisteredServices(Collections.singletonList(rule), RuleMetaDataLoader.class).get(rule);
          SchemaMetaData actual = loader.load(databaseType, Collections.singletonMap("logic_db", dataSource), new DataNodes(Collections.singletonList(rule)), rule, props, Collections.emptyList());
          assertThat(actual.get(TABLE_NAME).getColumnMetaData(0).getName(), is("id"));
          assertThat(actual.get(TABLE_NAME).getColumnMetaData(1).getName(), is("pwd_cipher"));
          assertThat(actual.get(TABLE_NAME).getColumnMetaData(2).getName(), is("pwd_plain"));
      }
test_case.class_method_signature: EncryptMetaDataLoaderTest.assertLoad()
test_case.full_signature: @Test public void assertLoad()
test_case.identifier: assertLoad
test_case.invocations: createEncryptRule get getRegisteredServices singletonList load singletonMap singletonList emptyList assertThat getName getColumnMetaData get is assertThat getName getColumnMetaData get is assertThat getName getColumnMetaData get is
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void assertLoad()
focal_class.file: shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/java/org/apache/shardingsphere/encrypt/metadata/EncryptMetaDataLoader.java
focal_class.identifier: EncryptMetaDataLoader
focal_class.interfaces: implements RuleMetaDataLoader<EncryptRule>
focal_class.class_method_signature: EncryptMetaDataLoader.load(final DatabaseType databaseType, final Map<String, DataSource> dataSourceMap, final DataNodes dataNodes,
                                 final EncryptRule encryptRule, final ConfigurationProperties props, final Collection<String> excludedTableNames)
focal_class.full_signature: @Override public SchemaMetaData load(final DatabaseType databaseType, final Map<String, DataSource> dataSourceMap, final DataNodes dataNodes,
                                 final EncryptRule encryptRule, final ConfigurationProperties props, final Collection<String> excludedTableNames)
focal_class.identifier: load
focal_class.modifiers: @Override public
focal_class.parameters: (final DatabaseType databaseType, final Map<String, DataSource> dataSourceMap, final DataNodes dataNodes,
                                 final EncryptRule encryptRule, final ConfigurationProperties props, final Collection<String> excludedTableNames)
focal_class.return: SchemaMetaData
focal_class.signature: SchemaMetaData load(final DatabaseType databaseType, final Map<String, DataSource> dataSourceMap, final DataNodes dataNodes,
                                 final EncryptRule encryptRule, final ConfigurationProperties props, final Collection<String> excludedTableNames)
focal_class.class_method_signature: EncryptMetaDataLoader.load(final DatabaseType databaseType, final Map<String, DataSource> dataSourceMap, final DataNodes dataNodes, 
                                          final String tableName, final EncryptRule encryptRule, final ConfigurationProperties props)
focal_class.full_signature: @Override public Optional<TableMetaData> load(final DatabaseType databaseType, final Map<String, DataSource> dataSourceMap, final DataNodes dataNodes, 
                                          final String tableName, final EncryptRule encryptRule, final ConfigurationProperties props)
focal_class.identifier: load
focal_class.modifiers: @Override public
focal_class.parameters: (final DatabaseType databaseType, final Map<String, DataSource> dataSourceMap, final DataNodes dataNodes, 
                                          final String tableName, final EncryptRule encryptRule, final ConfigurationProperties props)
focal_class.return: Optional<TableMetaData>
focal_class.signature: Optional<TableMetaData> load(final DatabaseType databaseType, final Map<String, DataSource> dataSourceMap, final DataNodes dataNodes, 
                                          final String tableName, final EncryptRule encryptRule, final ConfigurationProperties props)
focal_class.class_method_signature: EncryptMetaDataLoader.getOrder()
focal_class.full_signature: @Override public int getOrder()
focal_class.identifier: getOrder
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getOrder()
focal_class.class_method_signature: EncryptMetaDataLoader.getTypeClass()
focal_class.full_signature: @Override public Class<EncryptRule> getTypeClass()
focal_class.identifier: getTypeClass
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Class<EncryptRule>
focal_class.signature: Class<EncryptRule> getTypeClass()
focal_method.body: @Override
      public SchemaMetaData load(final DatabaseType databaseType, final Map<String, DataSource> dataSourceMap, final DataNodes dataNodes,
                                 final EncryptRule encryptRule, final ConfigurationProperties props, final Collection<String> excludedTableNames) throws SQLException {
          DataSource dataSource = dataSourceMap.values().iterator().next();
          Collection<String> encryptTableNames = encryptRule.getEncryptTableNames();
          Map<String, TableMetaData> result = new HashMap<>(encryptTableNames.size(), 1);
          for (String each : encryptTableNames) {
              if (!excludedTableNames.contains(each)) {
                  TableMetaDataLoader.load(dataSource, each, databaseType.getName()).ifPresent(tableMetaData -> result.put(each, tableMetaData));
              }
          }
          return new SchemaMetaData(result);
      }
focal_method.class_method_signature: EncryptMetaDataLoader.load(final DatabaseType databaseType, final Map<String, DataSource> dataSourceMap, final DataNodes dataNodes,
                                 final EncryptRule encryptRule, final ConfigurationProperties props, final Collection<String> excludedTableNames)
focal_method.full_signature: @Override public SchemaMetaData load(final DatabaseType databaseType, final Map<String, DataSource> dataSourceMap, final DataNodes dataNodes,
                                 final EncryptRule encryptRule, final ConfigurationProperties props, final Collection<String> excludedTableNames)
focal_method.identifier: load
focal_method.invocations: next iterator values getEncryptTableNames size contains ifPresent load getName put
focal_method.modifiers: @Override public
focal_method.parameters: (final DatabaseType databaseType, final Map<String, DataSource> dataSourceMap, final DataNodes dataNodes,
                                 final EncryptRule encryptRule, final ConfigurationProperties props, final Collection<String> excludedTableNames)
focal_method.return: SchemaMetaData
focal_method.signature: SchemaMetaData load(final DatabaseType databaseType, final Map<String, DataSource> dataSourceMap, final DataNodes dataNodes,
                                 final EncryptRule encryptRule, final ConfigurationProperties props, final Collection<String> excludedTableNames)