I see two reasonable alternatives.  Neither involves a CommonCas.

a) The JCas assumes its wrapper nature. It implements its additional functionality, and for all base functions, users refer to the CAS.

b) The JCas extends the CAS. For conflicting methods, use a different method name.

I like a) better because it reflects the nature of the JCas.

The CommonCas proposal shows the problematic nature of forwarding functions. Those common methods started out as forwarding functions, and in the implementation, I guess they still are. Then we notice that there are a lot of common APIs between the JCas and the CAS. Of course there are, all those forwarding functions.

--Thilo


Reply via email to