That method is defined in the DbAdapter interface; you don't need to cast it. See MySQLMergerFactory (post CAY-1108 patch) for an example.
-----Original Message-----
From: oyvindharbo..mail.com [mailto:oyvindharboe@gmail.com] On Behalf Of Øyvind Harboe
Sent: Thursday, September 25, 2008 3:55 AM
To: cayenne-use..ncubator.apache.org
Subject: Upcast problems w/SQLServerMergerFactory and AutoAdapter
1. I'm getting the exception below in my code:
org.apache.cayenne.dba.sqlserver.SQLServerMergerFactory$4.createSql(SQLServerMergerFactory.java:108)
2. This happens when I execute the code below:
t.createSql(mergerContext.getAdapter());
3. If #2 is legal, then I don't understand how an upcast to DbAdapter
to SQLServerAdapter
can work for AutoAdapter
..verride
public MergerToken createSetNotNullToDb(DbEntity entity, final
DbAttribute column) {
return new SetNotNullToDb(entity, column) {
..verride
public List<String> createSql(DbAdapter adapter) {
StringBuffer sqlBuffer = new StringBuffer();
sqlBuffer.append("ALTER TABLE ");
sqlBuffer.append(getEntity().getFullyQualifiedName());
sqlBuffer.append(" ALTER COLUMN ");
SQLServerAdapter sqladapter = (SQLServerAdapter) adapter;
sqladapter.createTableAppendColumn(sqlBuffer, column);
return Collections.singletonList(sqlBuffer.toString());
}
};
}
-- Øyvind Harboe http://www.zylin.com/zy1000.html ARM7 ARM9 XScale Cortex JTAG debugger and flash programmer
This archive was generated by hypermail 2.0.0 : Thu Sep 25 2008 - 13:01:13 EDT