[
https://issues.apache.org/jira/browse/ISIS-814?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Dan Haywood updated ISIS-814:
-----------------------------
Fix Version/s: (was: 3.0.0)
1.16.0
Summary: [WON'T FIX] Provide a better way to handle polymorphic
relationships, eg implement a "PolymorphicNavigator service" (was: Provide a
better way to handle polymorphic relationships, eg implement a
"PolymorphicNavigator service")
Support for this in the Incode platform (lib-poly module, or just as a a design
pattern).
> [WON'T FIX] Provide a better way to handle polymorphic relationships, eg
> implement a "PolymorphicNavigator service"
> -------------------------------------------------------------------------------------------------------------------
>
> Key: ISIS-814
> URL: https://issues.apache.org/jira/browse/ISIS-814
> Project: Isis
> Issue Type: New Feature
> Components: Core
> Affects Versions: core-1.5.0
> Reporter: Dan Haywood
> Priority: Minor
> Fix For: 1.16.0
>
>
> We'd like to be able to decouple modules (eg from Estatio or wherever) and
> make them reusable for others.
> For example, Estatio has "CommunicationChannel", where its owner is of type
> CommunicationChannelOwner. We currently use DataNucleus' support for
> interface mappings, but (because we use annotations) this requires us to list
> the fully qualified class names of the implementations in the
> CommunicationChannel; hardly reusable code.
> Naked Objects MVC has a service called the PolymorphicNavigator [1], a
> mechanism to handle relationships between different Entity Framework
> contexts, typically via an interface.
> The PolymorphicNavigator requires that all implementations use an int (or
> long) as their primary key. It then stores the relationship in a separate
> table, qualified by the object type. This is a bit like DataNucleus'
> "identity" strategy for mapping interfaces [2], except that:
> - two columns are used, not one (for object type, and object PK
> - the link is held separately from the rest of the object's data.
> [1]
> https://github.com/NakedObjectsGroup/NakedObjectsFramework/blob/4e860789ad115a38cd3348ceb5c0b141fb0e0d7b/Programming%20Model/NakedObjects.Helpers/Services/PolymorphicNavigator.cs
> [2] http://www.datanucleus.org/products/datanucleus/jdo/orm/interfaces.html
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)