On 12/27/06, Thilo Goetz <[EMAIL PROTECTED]> wrote:
Changes look ok, but I'm wondering: we now have CAS, CommonCas,
AbstractCas and AbstractCas_ImplBase, all in org.apache.uima.cas.  Why
is AbstractCas_ImplBase in the interfaces package?  Can we please move
it to the appropriate impl package?  Any chance we can consolidate
AbstractCas and CommonCas?


AbstractCas is meant to be the superinterface of any CAS interface we
might ever have in UIMA - someday this might even be extensible by
users.  So we can't add the methods from CommonCas, which are specific
to our particular CAS and JCas interface.  The only methods on
AbstractCas are those that the framework absolutely requires any CAS
to implement.  Possibly, the type name constants might be moved to
AbstractCas, since those may be considered a core part of our CAS
data, independent of the actual interface... but even this is not so
clear to me.  If we move closer to adopting Ecore/XMI we may have an
interface that doesn't use the names like "uima.cas.Integer", but
instead uses standard Ecore names.  I think maybe we should leave
AbstractCas alone for now.

I'm OK with moving AbstractCas_ImplBase to the impl package.  Either
Marshall could do this while he's in there or I can do it later.

The only argument I can think of for why I put I didn't put it under
impl is that someday this might be extensible by users, and our other
ImplBase classes that our extensible by users are also in the
"interfaces" package.  (It's not really a package intended for only
interfaces, but a "public API" package.)  However, even if this does
become extensible the vast majority of users would not care, so I
think it would be fine to put it in the impl package.

-Adam

Reply via email to