Developer note:
To extend this SQLQuerySourceWriter
for another
org.eclipse.datatools.modelbase.sql.query
package, the following naming
conventions have to be adhered to. The package name containing the
SQLQueryObject
s must contain the part name
sql.query
, e.g. org.eclipse.datatools.modelbase.sql.query.db2.luw
.
The SQLQuerySourceWriter
for that package must be under the sub-
package util
, likewise
org.eclipse.datatools.modelbase.sql.query.db2.luw.util
The name of the SQLQuerySourceWriter
class must be composed of
at least the last part of the SQLQueryObject
s' package name and
the word "SourceWriter", e.g. for an SQLQueryObject
in package
org.eclipse.datatools.modelbase.sql.query.db2.luw
the appropriate
SQLQuerySourceWriter
class could be
org.eclipse.datatools.modelbase.sql.query.db2.luw.util.DB2LUWSourceWriter
or
org.eclipse.datatools.modelbase.sql.query.db2.luw.util.LUWSourceWriter
. The
SQLQuerySourceWriter
could also be capable of generatiing the
SQL source text of multiple SQLQueryObject
s' packages and
consequently would have to be located in a higher package itself. Likewise
a org.eclipse.datatools.modelbase.sql.query.db2.util.DB2SourceWriter
could be
capable of generatiing the SQL source text for the packages
org.eclipse.datatools.modelbase.sql.query.db2
and
org.eclipse.datatools.modelbase.sql.query.db2.luw
and
org.eclipse.datatools.modelbase.sql.query.db2.zos
and
org.eclipse.datatools.modelbase.sql.query.db2.cloudscape
.
There can be only one SQLQuerySourceWriter
per
SQLQueryObject
package!
A SQLQuerySourceWriter
operates on interface level
TODO: ckadner finish! please crab me for that! SORRY -- time's short!
TODO: clear up comment
Developer note: add only appendSQL methods that apply
to specific SQLQueryObjects so the runtime type will decide its invocation,
an invokation of appendSQL() should always be compiletime-bound to
appendSQL(SQLQueryObject, StrinBuffer) that via reflection then invokes the
right appendSQL method. Unless: you know the exact runtime type and this type
has no subtypes with special features or source generation, that are
formatted by another appendSQL method here