public static IMetaStoreSchemaInfo get(Configuration conf, String hiveHome, String dbType) {
    String className = MetastoreConf.getVar(conf, MetastoreConf.ConfVars.SCHEMA_INFO_CLASS);
    Class<?> clasz;
    try {
      clasz = conf.getClassByName(className);
    } catch (ClassNotFoundException e) {
      LOG.error("Unable to load class " + className, e);
      throw new IllegalArgumentException(e);
    }
    Constructor<?> constructor;
    try {
      constructor = clasz.getConstructor(String.class, String.class);
      constructor.setAccessible(true);
      return (IMetaStoreSchemaInfo) constructor.newInstance(hiveHome, dbType);
    } catch (NoSuchMethodException | InstantiationException | IllegalAccessException
        | IllegalArgumentException | InvocationTargetException e) {
      LOG.error("Unable to create instance of class " + className, e);
      throw new IllegalArgumentException(e);
    }
  }
Factory class implementation to create instances of IMetaStoreSchemaInfo
based on the provided configuration
standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/MetaStoreSchemaInfoFactory.java