code: @SuppressWarnings("unchecked")
      public static <S extends Storable> JDBCStorableInfo<S> examine
          (Class<S> type, DataSource ds, String catalog, String schema)
          throws SQLException, SupportException
      {
          return examine(type, ds, catalog, schema, null, false);
      }
docs: Examines the given class and returns a JDBCStorableInfo describing it. A
  MalformedTypeException is thrown for a variety of reasons if the given
  class is not a well-defined Storable type or if it can't match up with
  an entity in the external database.
  
  @param type Storable type to examine
  @param ds source of JDBC connections to use for matching to a table
  @param catalog optional catalog to search
  @param schema optional schema to search
  @throws MalformedTypeException if Storable type is not well-formed
  @throws RepositoryException if there was a problem in accessing the database
  @throws IllegalArgumentException if type is null