/* Wotonomy: OpenStep design patterns for pure Java applications. Copyright (C) 2001 Michael Powers This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, see http://www.gnu.org */ package net.wotonomy.jdbcadaptor; import net.wotonomy.access.EOAdaptor; import net.wotonomy.access.EOAdaptorContext; import net.wotonomy.access.EOModel; import net.wotonomy.access.EOSQLExpressionFactory; import net.wotonomy.foundation.NSDictionary; /** * An adaptor that connects to a databaser server via JDBC. * * @author ezamudio@nasoft.com * @author $Author: cgruber $ * @version $Revision: 903 $ */ public class JDBCAdaptor extends EOAdaptor { protected EOSQLExpressionFactory _expressionFactory; protected String _driverName; protected NSDictionary _jdbcInfo; /** * Creates a new instance. * * @param name The name of the adaptor (should always be JDBC) */ public JDBCAdaptor(String name) { super(name); } @SuppressWarnings("unchecked") public void setConnectionDictionary(NSDictionary dict) { super.setConnectionDictionary(dict); if (dict.objectForKey("driver") != null) _driverName = (String) dict.objectForKey("driver"); else throw new JDBCAdaptorException("Connection dictionary must have a 'driver' key.", null); if (dict.objectForKey("jdbc2Info") != null) _jdbcInfo = (NSDictionary) dict.objectForKey("jdbc2Info"); else throw new JDBCAdaptorException("Connection dictionary must have a 'jdbc2Info' key.", null); } /* * Checks to see if the connection dictionary is valid. Throws an exception if * it's not. * * @see net.wotonomy.access.EOAdaptor#assertConnectionDictionaryIsValid() */ public void assertConnectionDictionaryIsValid() { JDBCContext context = new JDBCContext(this); context.connect(); context.disconnect(); } /* * Creates a JDBCContext. * * @see net.wotonomy.access.EOAdaptor#createAdaptorContext() */ public EOAdaptorContext createAdaptorContext() { JDBCContext context = new JDBCContext(this); _contexts.addObject(context); return context; } /* * Returns the JDBCExpression class. * * @see net.wotonomy.access.EOAdaptor#defaultExpressionClass() */ public Class defaultExpressionClass() { return JDBCExpression.class; } /* * Returns a JDBCExpressionFactory. * * @see net.wotonomy.access.EOAdaptor#expressionFactory() */ public EOSQLExpressionFactory expressionFactory() { if (_expressionFactory == null) _expressionFactory = new JDBCExpressionFactory(this); return _expressionFactory; } /* * Determines if a qualifier type is valid. * * @see net.wotonomy.access.EOAdaptor#isValidQualifierType(java.lang.String, * net.wotonomy.access.EOModel) */ public boolean isValidQualifierType(String typeName, EOModel model) { // TODO Auto-generated method stub return false; } public String driverName() { return _driverName; } public NSDictionary jdbcInfo() { return _jdbcInfo; } } /* * $Log$ Revision 1.2 2006/02/18 22:59:22 cgruber make it compile with maven * dependencies and add a cvsignore. * * Revision 1.1 2006/02/16 13:22:23 cgruber Check in all sources in * eclipse-friendly maven-enabled packages. * * Revision 1.1 2003/08/13 20:09:37 chochos a concrete implementation of * EOAdaptor for use with JDBC * */