isis-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dan Haywood <...@haywood-associates.co.uk>
Subject Re: Deep copy object graph
Date Tue, 14 Mar 2017 05:04:17 GMT
Meant to post an opinion on this.

My thought was to store the object graph as a jaxb / xml ; these are then
easy to clone and are also view models automatically.

Downside to this design is handling changes to the structure of these over
time... Anyway backward breaking change would be problematic.

HTH
Dan

On Tue, 14 Mar 2017, 05:39 David Tildesley, <davotnz@yahoo.co.nz.invalid>
wrote:

> Thanks Kevin,
> I guess I was looking for something like deep clone using serialization
> rather than detach-clone-persist and so on through the object graph. Being
> lazy ;)
> Regards,David.
>
>     On Tuesday, 14 March 2017 4:07 PM, "kevin@kmz.co.za" <kevin@kmz.co.za>
> wrote:
>
>
>  Hi David,
>
> Did you find a solution?
>
> Just a question: Why would you not use a standard service action to
> create the copy? Is there any reason why you want Datanucleus to do it?
>
> Personally, I would try and use a service that creates a copy of the
> current records and updates the public reference instance to always
> point to the latest (perhaps use a Proxy, for example - and another
> administrative view that displays the full set of changes over time).
>
> Cheers,
> Kevin
>
>
> On 2017-03-08 06:05, David Tildesley wrote:
> > Hi,
> > I have a need to keep public records and to be able to edit objects
> > and put them through a publishing lifecycle whilst public can view the
> > current record without seeing the changes.
> > Temporal object pattern [1] seems like the simplest pattern.
> > Then it comes down to how hard or easy it is to simply  copy a
> > components entire object graph to make a new version (don't really
> > care about the duplication of data that hasn't change from version to
> > version).
> > Datanucleus has some support for coping an object graph from one
> > repository to another - I assume you can copy to the same repository
> > to achieve what I want to do.
> > Krypo [2] seems like it is being used by Datanucleus.
> > Anyways - how to do this with ISIS? Any suggestions appreciated.
> > Some context:
> > A Building (component)  has a current FireSafetyCertification
> > (component) and is published as a public record and these records are
> > kept for 10 years. A change to a record that is viewable by the public
> > is regarded as a new public record. Overtime (slowly) these
> > FireSafetyCertificates may expire/withdrawn/change in detail. But when
> > they are published they constitute a public record. Building has
> > names, addresses, images, parts, construction details, etc. whilst
> > FireSafetyCertification has documents, exemption notices, expiry dates
> > etc.
> > Using the Temporal Object pattern, a Building object has 1..*
> > BuildingVersion and all of the Building's detail hangs off
> > BuildingVersion.
> > Any other suggestions instead of Temporal Object pattern also
> > appreciated.
> >
> > [1] https://martinfowler.com/eaaDev/TemporalObject.html
> > [2] http://camposha.info/source/java-kryo/
> > Thanks!
> > David.
>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message