Gordon Yorke wrote:
1) i) Your formating on the Class names seems a little
off.
ii) In PLSQLargument why do you have users pass in a
Type then create the wrapper? If the user has to know the type they
should create the wrappers unless the wrappers will only ever be used
internally?
The API only exposes the DatabaseType's; the wrappers are an artifact
that had to be added in order to support the
'self-mapping' for ComplexPLSQLTypeWrapper (where the XPath is ".")
iii) The 'if' statement in PLSQLargument is a lot
more complex then it need to be. try :
if (databaseType.isComplexDatabaseType()) {
databaseTypeWrapper = new
ComplexPLSQLTypeWrapper(databaseType);
} else if (databaseType.isJDBCType()) {
databaseTypeWrapper = new JDBCTypeWrapper(databaseType);
} else{
databaseTypeWrapper = new
SimplePLSQLTypeWrapper(databaseType);
}
'k - I was being paranoid
iv) Why is PLSQLargument not polymorphic? Seems it
would be more intuitive to have a heirarchy of PLSQLarguments then have
a heirarchy of types.
The PLSQLargument manages the positional requirements (original index,
re-computed index) of the DatabaseType's when used as either a simple
argument or a field of a complex argument. No polymorphism is required;
however, the DatabaseType hierarchy and its impl's use it extensively.
2) Why are you creating a
custom Class Extractor method? a QName inheritance policy should
provide this functionality for you.
I updated the patch 'diff for core' on the bug, using the QName
Inheritance policy as recommended by Blaise.
3) buildPLSQLTypeWrapperDescriptor() : Wrapper Mappings
:attribute accessor override : Seems very strange that you would be
preventing TopLink from reading and populating a value that you are
writing out? This is most likely to support the custom Class Extractor
Method from above?
Yes, that was related to the custom Class Extractor - with the QName
Inheritance policy, it is no longer required.
--Gordon
Diff 85118 attach'd to the bug with above changes
--
Mike Norman | Principal Software Designer | 613.288.4638
Oracle Server Technologies | TopLink Product
45 O'Connor Street, Suite 400 | Ottawa, ON K1P 1A4 | (fax) 613.238.2818