[
https://issues.apache.org/cayenne/browse/CAY-915?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12591
]
Kevin Menard commented on CAY-915:
----------------------------------
Correct. The interface would be generated based on the properties defined in
the entity.
Unless I'm mistaken, there's one pass to generate super and subclasses for the
server and another pass to generate for super and subclasses for the client.
What I'm suggesting is a third pass that generates one set of interfaces that
will be implemented by the super classes for both server and client. It would
yield something like the following:
com.example.models.interfaces.IPainting
com.example.models.auto._Painting implements
com.example.models.interfaces.IPainting
com.example.models.client.auto._Painting implements
com.example.models.interfaces.IPainting
The subclasses would extend from the superclass as usual.
As per the other generation steps, this should be configurable.
If this sounds like a bad approach, we can discuss better design options on the
dev list.
> Add ability to generate a common interface for client and server classes
> ------------------------------------------------------------------------
>
> Key: CAY-915
> URL: https://issues.apache.org/cayenne/browse/CAY-915
> Project: Cayenne
> Issue Type: New Feature
> Components: CayenneModeler GUI
> Affects Versions: 3.0
> Reporter: Kevin Menard
> Assignee: Kevin Menard
> Fix For: 3.0
>
>
> Currently there is a divide between ROP client and server classes.
> Ultimately, it'd be nice to see some unification of the two. In some
> applications, however, there is compelling reason to keep two hierarchies
> separate. In that case, it may still be beneficial to have a common
> interface that other code can use to interact with both client and server
> classes.
> Off hand, I'm thinking of two new fields to the class generation panel in the
> modeler:
> 1) Check box for indicating that the interfaces should be generated
> 2) A text field for specifying the package to use
> This also implies modifications to both the client and server superclass
> velocity templates.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.