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(answer = Answers.RETURNS_DEEP_STUBS)
      private
test_class.original_string: @Mock(answer = Answers.RETURNS_DEEP_STUBS)
      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.declarator: loader = new RuleSchemaMetaDataLoader(Arrays.asList(new CommonFixtureRule(), new DataNodeRoutedFixtureRule()))
test_class.modifier: private final
test_class.original_string: private final RuleSchemaMetaDataLoader loader = new RuleSchemaMetaDataLoader(Arrays.asList(new CommonFixtureRule(), new DataNodeRoutedFixtureRule()));
test_class.type: RuleSchemaMetaDataLoader
test_class.var_name: loader
test_class.file: shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/RuleSchemaMetaDataLoaderTest.java
test_class.identifier: RuleSchemaMetaDataLoaderTest
test_case.body: @Test
      public void assertAsyncLoadFullDatabase() throws SQLException {
          assertRuleSchemaMetaData(loader.load(databaseType, dataSource, props));
      }
test_case.class_method_signature: RuleSchemaMetaDataLoaderTest.assertAsyncLoadFullDatabase()
test_case.full_signature: @Test public void assertAsyncLoadFullDatabase()
test_case.identifier: assertAsyncLoadFullDatabase
test_case.invocations: assertRuleSchemaMetaData load
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void assertAsyncLoadFullDatabase()
focal_class.declarator: rules
focal_class.modifier: private final
focal_class.original_string: private final Collection<ShardingSphereRule> rules;
focal_class.type: Collection<ShardingSphereRule>
focal_class.var_name: rules
focal_class.file: shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/RuleSchemaMetaDataLoader.java
focal_class.identifier: RuleSchemaMetaDataLoader
focal_class.class_method_signature: RuleSchemaMetaDataLoader.load(final DatabaseType databaseType, final Map<String, DataSource> dataSourceMap, 
                                     final ConfigurationProperties props)
focal_class.full_signature: @SuppressWarnings({"unchecked", "rawtypes"}) public RuleSchemaMetaData load(final DatabaseType databaseType, final Map<String, DataSource> dataSourceMap, 
                                     final ConfigurationProperties props)
focal_class.identifier: load
focal_class.modifiers: @SuppressWarnings({"unchecked", "rawtypes"}) public
focal_class.parameters: (final DatabaseType databaseType, final Map<String, DataSource> dataSourceMap, 
                                     final ConfigurationProperties props)
focal_class.return: RuleSchemaMetaData
focal_class.signature: RuleSchemaMetaData load(final DatabaseType databaseType, final Map<String, DataSource> dataSourceMap, 
                                     final ConfigurationProperties props)
focal_class.class_method_signature: RuleSchemaMetaDataLoader.load(final DatabaseType databaseType, final DataSource dataSource, 
                                     final ConfigurationProperties props)
focal_class.full_signature: public RuleSchemaMetaData load(final DatabaseType databaseType, final DataSource dataSource, 
                                     final ConfigurationProperties props)
focal_class.identifier: load
focal_class.modifiers: public
focal_class.parameters: (final DatabaseType databaseType, final DataSource dataSource, 
                                     final ConfigurationProperties props)
focal_class.return: RuleSchemaMetaData
focal_class.signature: RuleSchemaMetaData load(final DatabaseType databaseType, final DataSource dataSource, 
                                     final ConfigurationProperties props)
focal_class.class_method_signature: RuleSchemaMetaDataLoader.load(final DatabaseType databaseType, final Map<String, DataSource> dataSourceMap, 
                                          final String tableName, final ConfigurationProperties props)
focal_class.full_signature: @SuppressWarnings({"unchecked", "rawtypes"}) public Optional<TableMetaData> load(final DatabaseType databaseType, final Map<String, DataSource> dataSourceMap, 
                                          final String tableName, final ConfigurationProperties props)
focal_class.identifier: load
focal_class.modifiers: @SuppressWarnings({"unchecked", "rawtypes"}) public
focal_class.parameters: (final DatabaseType databaseType, final Map<String, DataSource> dataSourceMap, 
                                          final String tableName, final ConfigurationProperties props)
focal_class.return: Optional<TableMetaData>
focal_class.signature: Optional<TableMetaData> load(final DatabaseType databaseType, final Map<String, DataSource> dataSourceMap, 
                                          final String tableName, final ConfigurationProperties props)
focal_class.class_method_signature: RuleSchemaMetaDataLoader.load(final DatabaseType databaseType, final DataSource dataSource, 
                                          final String tableName, final ConfigurationProperties props)
focal_class.full_signature: public Optional<TableMetaData> load(final DatabaseType databaseType, final DataSource dataSource, 
                                          final String tableName, final ConfigurationProperties props)
focal_class.identifier: load
focal_class.modifiers: public
focal_class.parameters: (final DatabaseType databaseType, final DataSource dataSource, 
                                          final String tableName, final ConfigurationProperties props)
focal_class.return: Optional<TableMetaData>
focal_class.signature: Optional<TableMetaData> load(final DatabaseType databaseType, final DataSource dataSource, 
                                          final String tableName, final ConfigurationProperties props)
focal_class.class_method_signature: RuleSchemaMetaDataLoader.loadUnConfiguredSchemaMetaData(final DatabaseType databaseType, final Map<String, DataSource> dataSourceMap,
                                                                         final Collection<String> excludedTableNames)
focal_class.full_signature: private Map<String, Collection<String>> loadUnConfiguredSchemaMetaData(final DatabaseType databaseType, final Map<String, DataSource> dataSourceMap,
                                                                         final Collection<String> excludedTableNames)
focal_class.identifier: loadUnConfiguredSchemaMetaData
focal_class.modifiers: private
focal_class.parameters: (final DatabaseType databaseType, final Map<String, DataSource> dataSourceMap,
                                                                         final Collection<String> excludedTableNames)
focal_class.return: Map<String, Collection<String>>
focal_class.signature: Map<String, Collection<String>> loadUnConfiguredSchemaMetaData(final DatabaseType databaseType, final Map<String, DataSource> dataSourceMap,
                                                                         final Collection<String> excludedTableNames)
focal_class.class_method_signature: RuleSchemaMetaDataLoader.decorate(final SchemaMetaData schemaMetaData)
focal_class.full_signature: @SuppressWarnings({"unchecked", "rawtypes"}) private void decorate(final SchemaMetaData schemaMetaData)
focal_class.identifier: decorate
focal_class.modifiers: @SuppressWarnings({"unchecked", "rawtypes"}) private
focal_class.parameters: (final SchemaMetaData schemaMetaData)
focal_class.return: void
focal_class.signature: void decorate(final SchemaMetaData schemaMetaData)
focal_class.class_method_signature: RuleSchemaMetaDataLoader.decorate(final String tableName, final TableMetaData tableMetaData)
focal_class.full_signature: @SuppressWarnings({"unchecked", "rawtypes"}) private TableMetaData decorate(final String tableName, final TableMetaData tableMetaData)
focal_class.identifier: decorate
focal_class.modifiers: @SuppressWarnings({"unchecked", "rawtypes"}) private
focal_class.parameters: (final String tableName, final TableMetaData tableMetaData)
focal_class.return: TableMetaData
focal_class.signature: TableMetaData decorate(final String tableName, final TableMetaData tableMetaData)
focal_method.body: @SuppressWarnings({"unchecked", "rawtypes"})
      public RuleSchemaMetaData load(final DatabaseType databaseType, final Map<String, DataSource> dataSourceMap, 
                                     final ConfigurationProperties props) throws SQLException {
          Collection<String> excludedTableNames = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
          SchemaMetaData configuredSchemaMetaData = new SchemaMetaData();
          for (Entry<ShardingSphereRule, RuleMetaDataLoader> entry : OrderedSPIRegistry.getRegisteredServices(rules, RuleMetaDataLoader.class).entrySet()) {
              SchemaMetaData schemaMetaData = entry.getValue().load(databaseType, dataSourceMap, new DataNodes(rules), entry.getKey(), props, excludedTableNames);
              excludedTableNames.addAll(schemaMetaData.getAllTableNames());
              if (entry.getKey() instanceof DataNodeRoutedRule) {
                  excludedTableNames.addAll(((DataNodeRoutedRule) entry.getKey()).getAllActualTables());
              }
              configuredSchemaMetaData.merge(schemaMetaData);
          }
          decorate(configuredSchemaMetaData);
          Map<String, Collection<String>> unConfiguredSchemaMetaDataMap = loadUnConfiguredSchemaMetaData(databaseType, dataSourceMap, excludedTableNames);
          return new RuleSchemaMetaData(configuredSchemaMetaData, unConfiguredSchemaMetaDataMap);
      }
focal_method.class_method_signature: RuleSchemaMetaDataLoader.load(final DatabaseType databaseType, final Map<String, DataSource> dataSourceMap, 
                                     final ConfigurationProperties props)
focal_method.full_signature: @SuppressWarnings({"unchecked", "rawtypes"}) public RuleSchemaMetaData load(final DatabaseType databaseType, final Map<String, DataSource> dataSourceMap, 
                                     final ConfigurationProperties props)
focal_method.identifier: load
focal_method.invocations: entrySet getRegisteredServices load getValue getKey addAll getAllTableNames getKey addAll getAllActualTables getKey merge decorate loadUnConfiguredSchemaMetaData
focal_method.modifiers: @SuppressWarnings({"unchecked", "rawtypes"}) public
focal_method.parameters: (final DatabaseType databaseType, final Map<String, DataSource> dataSourceMap, 
                                     final ConfigurationProperties props)
focal_method.return: RuleSchemaMetaData
focal_method.signature: RuleSchemaMetaData load(final DatabaseType databaseType, final Map<String, DataSource> dataSourceMap, 
                                     final ConfigurationProperties props)