@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);
    }
@ 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 ) ; }
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