if (type == null) return null;
    public Connection connect(String url, Properties originalInfo)        throws SQLException    {        final GDSType type = GDSFactory.getTypeForProtocol(url);        try {            if (originalInfo == null)                originalInfo = new Properties();            Map normalizedInfo = FBDriverPropertyManager.normalize(url, originalInfo);                        int qMarkIndex = url.indexOf('?');            if (qMarkIndex != -1)                url = url.substring(0, qMarkIndex);            FBManagedConnectionFactory mcf = new FBManagedConnectionFactory(type);                        String databaseURL = GDSFactory.getDatabasePath(type, url);            mcf.setDatabase(databaseURL);            for (Iterator iter = normalizedInfo.entrySet().iterator(); iter.hasNext();) {                Map.Entry entry = (Map.Entry) iter.next();                                mcf.setNonStandardProperty((String)entry.getKey(), (String)entry.getValue());            }            FBConnectionHelper.processTpbMapping(mcf.getGDS(), mcf, originalInfo);                        mcf = mcf.canonicalize();            FBDataSource dataSource = createDataSource(mcf);            return dataSource.getConnection(mcf.getUserName(), mcf.getPassword());                    } catch(ResourceException resex) {            throw new FBSQLException(resex);        } catch(GDSException ex) {            throw new FBSQLException(ex);        }    }