OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

sdo message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: RE: ISSUE 184: Replace missing text in section 4.1.3 and 4.1.4 -Proposal (part 1)


Hi Guys,

 

Here’s a draft proposal, starting with new text that goes at the end of 4.1.3, and giving the complete text of 4.1.4.  There will also be some changes to the table of exception in 4.1.13 (now 4.1.12), but I will send those out in a separate email.

 

Ron

_______________________________________________________________________________________________

 

Note that when calling the primitive DataObject.set() methods, no automatic conversion is performed. In this case, type conversion can be explicitly performed by calling DataHelper.convert() before calling the set() method. For example:

dataObject.set(property, dataHelper.convert(property, value));

4.1.4 Many-valued DataObject Properties

A Property can have one or many values. If a Property is many-valued then property.many is true.

An SDO implementation MUST return an empty list, rather than a null value, for all property accessors that have a return type of List, whether in the DataObject interface or in a static API, if the property has no value. [COR04010401]

For many-valued Properties, get() and getList() return a “live” list containing the current contents of the property, not a static copy of the contents at the moment when the list was retrieved. An SDO implementation MUST make all modifications to a returned List visible in the DataObject, so that all operations reflect the updated list contents. [COR04010402] An SDO implementation MUST make updates to the DataObject visible though a returned List object. [COR04010403]

When a get<T> method is called on a many-valued property, then if the list contains a single element, the value of the element in the list MUST be returned (after conversion, if appropriate); if the list is emtpy, null MUST returned. [COR04010404]. Conversely, when a set<T> method is invoked on a many-value property, then resulting value of the property MUST be a list containing a single element having the specified value (after conversion, if appropriate) . [COR04010405].

If property.many is true then set(property, value) and setList(property, value) requre that "value" be an instance of the appropriate implementation language construct. 

A many-valued property whose elements are DataObjects (i.e., property.type.dataType is false) can not contain null values.  The behavior of an SDO implementation is undefined if an attempt is made to set the value of the property to a list containing null, or to add a null value to an existing list.

A multivalued property that is bidirectional (i.e., has an opposite property, or is indicated as the opposite of another property) cannot cannot contain duplicates.  The behavior of an SDO implementation is undefined if an attempt is made to set the value of the property to a list containing duplicates, or to add an element to a list that already contains the value.

 

 

From: Barack, Ron [mailto:ron.barack@sap.com]
Sent: Dienstag, 19. Oktober 2010 18:06
To: sdo@lists.oasis-open.org
Subject: [sdo] ISSUE 184: Replace missing text in section 4.1.3 and 4.1.4

 

 



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]