[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: AW: [sdo] ISSUE 66: Proposed Resolution
Hi,
The discussion on sequenced data objects and the
project operation is getting a little complex. In an effort to try to
frame the discussion, let me try to take a step back, and pose a few fundamental
questions, and discuss their consequences as I see them.
The
first question is "is the sequence part of the underlying data (like the values
of properties), or is it part of the view (like
containment)?".
Considering the sequence to be part of the underlying
data simplifies our world a quite a bit, since in this case we don't have to
worry about any of the four cases that Stefan describes in his email. It
also restricts our use-cases.
If we
consider the sequence to be part of the view, then we give users the ability to
use the same underlying data to generate XML that validates against different
schemas. The "industrial standard" schemas that Frank likes to talk about
tend to be complex enough that the user has no chance of creating valid
documents without manipulating the sequence. Do we really want to
say that the data objects that make up these documents can never be casted POJOs
(eg, to JPAs)?
If we
take the complex but flexible approach of saying that the sequence is part
of the view, not of the data, then we need to identify what is the initial state
of the sequence after the project operation. At least for the case that O2
is a new projection (that is, we are casting into a new context rather than
"casting back" into an old one), at least the first 3 rules that Stefan gives
seem to be pretty clear and logical. The problem comes, really, during a
cast back into the original context.
The
next basic question about sequenced data objects is "does the sequence survive
the cast operation"? In Stefan's proposal, the sequence does not
survive. If it does survive, then we start getting questions about how
changes made to O2 effect the sequence of O1. The most obvious
approach here is to say that when setters are called on O2, the O1's sequence is
modified just as if the corresponding setter were called on O1. But as
soon as we start dealing with the methods that directly manipulate the sequence
(eg, add and delete), things start getting really messy.
I'm
very interested in the groups opinion on these issues. It's the old
tradeoff, does the functionality justify the extra complexity. I will put
this discussion on Tuesday's agenda.
Best
Regards,
Ron
Von: Buennig, Stefan [mailto:stefan.buennig@sap.com] Gesendet: Freitag, 28. März 2008 10:35 An: sdo@lists.oasis-open.org Betreff: AW: [sdo] ISSUE 66: Proposed Resolution Hi Blaise,
We want to add our thoughts:
- Sequenced Data
Objects
If we imagine, the
data of a DataObject are just the content of the properties and the sequence is
part of the view in the specific projection then we could define the following
quite simple rules:
- Abstract Types
Agree, an abstract type in the target HelperContext
would prevent the project operation. In detail that means a target type cannot
be abstract and the original type cannot be abstract too.
- Open Types
It depends on whether we will allow hiding of properties. All open
content of a O1 with (O1.getType().isOpen() == true) could be hidden in O2 with
(O1.getType().isOpen() == false).
- Undefined State
The user should be able to determine if
the DataObject is in an undefined
state.
Best
regards,
Ulf &
Stefan.
Von: Blaise Doughan [mailto:blaise.doughan@oracle.com] Gesendet: Montag, 24. März 2008 16:28 An: Barack, Ron; sdo@lists.oasis-open.org Betreff: Re: [sdo] ISSUE 66: Proposed Resolution Hi Ron,
Could you clarify the following issues as they
relate to the project operation below?
DataObject O2 =
C2.getDataHelper().project(O1);
Sequenced Data
Objects
Abstract Types
Open Types
Undefined State
Valid DataObjects
Returned
-Blaise
|
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]