Issue 1244: OBV/inheritance restriction clarification (boca-rtf) Source: (, ) Nature: Clarification Severity: Summary: Summary: The OMG Objects By Value, document orbos/98-01-18, defines restrictions on inheritance relationships starting on page 5-26, section 5.3.2.1. This section of the Object By Value document includes a summarization table for allowable inheritance relationships. (This specifies that an interface may inherit from multiple interfaces, no abstract values, and no stateful values. An abstract value may support multiple interfaces and abstract values. A stateful value may support multiple interfaces and abstract values, inherit from a single stateful value.) The BOCA document, page 90, defines constraints on specification inheritance, including that "a type can inherit from other types and/or idl interfaces". This statement, and the other contraints, may not adequately reflect the semantic constraints added by the Objects By Value specification. This issue was addressed in the BOCA errata document bom/98-02-17, but was inadvertently lost in the transcription to the final errata document. Resolution: Revised Text: Actions taken: April 27, 1998: received issue June 23, 1998: closed issue Discussion: End of Annotations:===== Return-Path: From: Tom Digre To: "'issues'" Cc: "'Boca RTF'" Subject: boca-rtf issue:Object by Value/inheritance restriction clarificat ion Date: Mon, 27 Apr 1998 14:35:24 -0400 BOCA The OMG Objects By Value, document orbos/98-01-18, defines restrictions on inheritance relationships starting on page 5-26, section 5.3.2.1. This section of the Object By Value document includes a summarization table for allowable inheritance relationships. (This specifies that an interface may inherit from multiple interfaces, no abstract values, and no stateful values. An abstract value may support multiple interfaces and abstract values. A stateful value may support multiple interfaces and abstract values, inherit from a single stateful value.) The BOCA document, page 90, defines constraints on specification inheritance, including that "a type can inherit from other types and/or idl interfaces". This statement, and the other contraints, may not adequately reflect the semantic constraints added by the Objects By Value specification. This issue was addressed in the BOCA errata document bom/98-02-17, but was inadvertently lost in the transcription to the final errata document. RECOMMENDATION: * page 90 * reference text: "A CDL type follows the rules of specification inheritance as defined for an OMG IDL interface"... "FALSE" * action: * add phrase: ", an OMG IDL abstract interface, an OMG IDL abstract value type, or an OMG IDL stateful value type, as appropriate" * add subbullets for clarification: * "The interitance specification for a BOCA type must adhere to the restrictions imposed by OMG IDL interface inheritance, abstract interface inheritance, abstract value inheritance, and stateful value inheritance. For the purpose of this inheritance restriction, the following correspondence exists between BOCA types and OMG types: * interface: !is_abstract && !pass_by_value * abstract: is_abstract && !pass_by_value * abstract value: is_abstract && pass_by_value * stateful value: !is_abstract && pass_by_value" * "An OMG interface, abstract interface, abstract value, or stateful value can not inherit from a BOCA type." * "A BOCA type can inherit from other BOCA types and/or OMG IDL interfaces, abstract interfaces, abstract values, or stateful values subject to the OMG IDL inheritance rules." Tom Digre Return-Path: Date: Mon, 27 Apr 1998 16:31:54 -0400 From: Fred Cummins Reply-To: cummins@eng.eds.com Organization: EDS Intelligent & Object Systems To: Tom Digre Cc: "'issues'" , "'Boca RTF'" Subject: Re: boca-rtf issue:Object by Value/inheritance restriction clarificat ion References: <81BE0D0981E9D011A8C7006097A730701EBD2E@EXCHANGE> Tom, I'm not sure if your revision meets my concern or not. I do not want a business object to be specialized to a value type or a value type to be specialized to a business object type--similarly for immutable objects and their specializations (always passed by reference). In other words, I want the types defined for attributes and relationships to be consistent when specialized so that when I expect a reference, I always get a reference, and when I expect an object passed by value I always get an object passed by value. Tom Digre wrote: > > BOCA > The OMG Objects By Value, document orbos/98-01-18, defines > restrictions > on inheritance relationships starting on page 5-26, section 5.3.2.1. > This section of the Object By Value document includes a > summarization > table for allowable inheritance relationships. (This specifies > that an > interface may inherit from multiple interfaces, no abstract values, > and > no stateful values. An abstract value may support multiple > interfaces > and abstract values. A stateful value may support multiple > interfaces > and abstract values, inherit from a single stateful value.) > > The BOCA document, page 90, defines constraints on specification > inheritance, including that "a type can inherit from other types > and/or > idl interfaces". This statement, and the other contraints, may not > adequately reflect the semantic constraints added by the Objects By > Value specification. > > This issue was addressed in the BOCA errata document bom/98-02-17, > but > was inadvertently lost in the transcription to the final errata > document. > > RECOMMENDATION: > * page 90 > * reference text: "A CDL type follows the rules of > specification inheritance as defined for an OMG IDL interface"... > "FALSE" > * action: > * add phrase: ", an OMG IDL abstract > interface, > an OMG IDL abstract value type, or an OMG IDL stateful value type, > as > appropriate" > * add subbullets for clarification: > * "The interitance specification for a > BOCA type must adhere to the restrictions imposed by OMG IDL > interface > inheritance, abstract interface inheritance, abstract value > inheritance, and stateful value inheritance. For the purpose of > this > inheritance restriction, the following correspondence exists between > BOCA types and OMG types: > * interface: !is_abstract && > !pass_by_value > * abstract: is_abstract && > !pass_by_value > * abstract value: is_abstract > && > pass_by_value > * stateful value: !is_abstract > && > pass_by_value" > * "An OMG interface, abstract > interface, > abstract value, or stateful value can not inherit from a BOCA type." > * "A BOCA type can inherit from other > BOCA > types and/or OMG IDL interfaces, abstract interfaces, abstract > values, > or stateful values subject to the OMG IDL inheritance rules." > > Tom Digre Return-Path: From: Tom Digre To: "'cummins@eng.eds.com'" Cc: "'issues'" , "'Boca RTF'" Subject: RE: boca-rtf issue:Object by Value/inheritance restriction clarif ication Date: Tue, 28 Apr 1998 07:57:11 -0400 Fred- The mapping for all types defined in CDL ultimately inherit from a Boca Framework type. Therefore, the framework can effectively constrain certain forms of inheritance. If the framework definition, in conjunction with the Object By Value specification, do not meet your requirements could you please suggest wording for the appropriate constraint. Thanks, Tom Digre > ---------- > From: Fred Cummins[SMTP:cummins@eng.eds.com] > Reply To: cummins@eng.eds.com > Sent: Monday, April 27, 1998 4:31 PM > To: Tom Digre > Cc: 'issues'; 'Boca RTF' > Subject: Re: boca-rtf issue:Object by Value/inheritance > restriction clarificat ion > > Tom, > > I'm not sure if your revision meets my concern or not. I do not > want > a > business object to be specialized to a value type or a value type to > be > specialized to a business object type--similarly for immutable > objects > and their specializations (always passed by reference). In other > words, > I want the types defined for attributes and relationships to be > consistent when > specialized so that when I expect a reference, I always get a > reference, > and when I expect an object passed by value I always get an object > passed by value. > > Tom Digre wrote: > > > > BOCA > > The OMG Objects By Value, document orbos/98-01-18, defines > restrictions > > on inheritance relationships starting on page 5-26, section > 5.3.2.1. > > This section of the Object By Value document includes a > summarization > > table for allowable inheritance relationships. (This specifies > that an > > interface may inherit from multiple interfaces, no abstract > values, > and > > no stateful values. An abstract value may support multiple > interfaces > > and abstract values. A stateful value may support multiple > interfaces > > and abstract values, inherit from a single stateful value.) > > > > The BOCA document, page 90, defines constraints on specification > > inheritance, including that "a type can inherit from other types > and/or > > idl interfaces". This statement, and the other contraints, may > not > > adequately reflect the semantic constraints added by the Objects > By > > Value specification. > > > > This issue was addressed in the BOCA errata document bom/98-02-17, > but > > was inadvertently lost in the transcription to the final errata > > document. > > > > RECOMMENDATION: > > * page 90 > > * reference text: "A CDL type follows the rules of > > specification inheritance as defined for an OMG IDL interface"... > > "FALSE" > > * action: > > * add phrase: ", an OMG IDL abstract > interface, > > an OMG IDL abstract value type, or an OMG IDL stateful value type, > as > > appropriate" > > * add subbullets for clarification: > > * "The interitance specification for > a > > BOCA type must adhere to the restrictions imposed by OMG IDL > interface > > inheritance, abstract interface inheritance, abstract value > > inheritance, and stateful value inheritance. For the purpose of > this > > inheritance restriction, the following correspondence exists > between > > BOCA types and OMG types: > > * interface: !is_abstract && > > !pass_by_value > > * abstract: is_abstract && > > !pass_by_value > > * abstract value: > is_abstract > && > > pass_by_value > > * stateful value: > !is_abstract > && > > pass_by_value" > > * "An OMG interface, abstract > interface, > > abstract value, or stateful value can not inherit from a BOCA > type." > > * "A BOCA type can inherit from > other > BOCA > > types and/or OMG IDL interfaces, abstract interfaces, abstract > values, > > or stateful values subject to the OMG IDL inheritance rules." > > > > Tom Digre > Return-Path: Date: Tue, 28 Apr 1998 15:28:13 -0400 From: Fred Cummins Reply-To: cummins@eng.eds.com Organization: EDS Intelligent & Object Systems To: Tom Digre Cc: "'issues'" , "'Boca RTF'" Subject: Re: boca-rtf issue:Object by Value/inheritance restriction > clarif ication References: <81BE0D0981E9D011A8C7006097A730701EBD34@EXCHANGE> Tom, On further examination, I think the OBV spec addresses my concern. My concern arose from an earlier version. Fred Tom Digre wrote: > > Fred- > The mapping for all types defined in CDL ultimately inherit from a > Boca > Framework type. Therefore, the framework can effectively constrain > certain forms of inheritance. If the framework definition, in > conjunction with the Object By Value specification, do not meet your > requirements could you please suggest wording for the appropriate > constraint. > Thanks, > Tom Digre > > > ---------- > > From: Fred Cummins[SMTP:cummins@eng.eds.com] > > Reply To: cummins@eng.eds.com > > Sent: Monday, April 27, 1998 4:31 PM > > To: Tom Digre > > Cc: 'issues'; 'Boca RTF' > > Subject: Re: boca-rtf issue:Object by Value/inheritance > > restriction clarificat ion > > > > Tom, > > > > I'm not sure if your revision meets my concern or not. I do not > want > > a > > business object to be specialized to a value type or a value type > to > > be > > specialized to a business object type--similarly for immutable > objects > > and their specializations (always passed by reference). In other > > words, > > I want the types defined for attributes and relationships to be > > consistent when > > specialized so that when I expect a reference, I always get a > > reference, > > and when I expect an object passed by value I always get an object > > passed by value. > > > > Tom Digre wrote: > > > > > > BOCA > > > The OMG Objects By Value, document orbos/98-01-18, defines > > restrictions > > > on inheritance relationships starting on page 5-26, section > 5.3.2.1. > > > This section of the Object By Value document includes a > > summarization > > > table for allowable inheritance relationships. (This specifies > > that an > > > interface may inherit from multiple interfaces, no abstract > values, > > and > > > no stateful values. An abstract value may support multiple > > interfaces > > > and abstract values. A stateful value may support multiple > > interfaces > > > and abstract values, inherit from a single stateful value.) > > > > > > The BOCA document, page 90, defines constraints on specification > > > inheritance, including that "a type can inherit from other types > > and/or > > > idl interfaces". This statement, and the other contraints, may > not > > > adequately reflect the semantic constraints added by the Objects > By > > > Value specification. > > > > > > This issue was addressed in the BOCA errata document > bom/98-02-17, > > but > > > was inadvertently lost in the transcription to the final errata > > > document. > > > > > > RECOMMENDATION: > > > * page 90 > > > * reference text: "A CDL type follows the rules of > > > specification inheritance as defined for an OMG IDL > interface"... > > > "FALSE" > > > * action: > > > * add phrase: ", an OMG IDL abstract > > interface, > > > an OMG IDL abstract value type, or an OMG IDL stateful value > type, > > as > > > appropriate" > > > * add subbullets for clarification: > > > * "The interitance specification > for a > > > BOCA type must adhere to the restrictions imposed by OMG IDL > > interface > > > inheritance, abstract interface inheritance, abstract value > > > inheritance, and stateful value inheritance. For the purpose > of > > this > > > inheritance restriction, the following correspondence exists > between > > > BOCA types and OMG types: > > > * interface: !is_abstract > && > > > !pass_by_value > > > * abstract: is_abstract && > > > !pass_by_value > > > * abstract value: > is_abstract > > && > > > pass_by_value > > > * stateful value: > !is_abstract > > && > > > pass_by_value" > > > * "An OMG interface, abstract > > interface, > > > abstract value, or stateful value can not inherit from a BOCA > type." > > > * "A BOCA type can inherit from > other > > BOCA > > > types and/or OMG IDL interfaces, abstract interfaces, abstract > > values, > > > or stateful values subject to the OMG IDL inheritance rules." > > > > > > Tom Digre > >