| 1 | = FDO RFC 8 - Add New Methods to !FdoClassDefinition = |
| 2 | |
| 3 | This page contains a request for comments document (RFC) for the FDO Open Source project. |
| 4 | More FDO RFCs can be found on the [wiki:FDORfcs RFCs] page. |
| 5 | |
| 6 | == Status == |
| 7 | |
| 8 | ||RFC Template Version||(1.0)|| |
| 9 | ||Submission Date||July 25, 2007|| |
| 10 | ||Last Modified|| Barbara Zoladek [[Timestamp]]|| |
| 11 | ||Author|| Barbara Zoladek|| |
| 12 | ||RFC Status||draft || |
| 13 | ||Implementation Status|| under development|| |
| 14 | ||Proposed Milestone||(e.g. 1.1, 1.3)|| |
| 15 | ||Assigned PSC guide(s)|| Greg Boone|| |
| 16 | ||'''Voting History'''|||| |
| 17 | ||+1||Bob, Mateusz|| |
| 18 | ||+0||Frank|| |
| 19 | ||-0||Orest|| |
| 20 | ||-1||Greg (troublemaker)|| |
| 21 | |
| 22 | == Overview == |
| 23 | |
| 24 | The purpose of this RFC is to enhance the !FdoClassDefinition class by adding new methods !GetIsViewBased() and !SetIsViewBased(). |
| 25 | |
| 26 | |
| 27 | == Motivation == |
| 28 | |
| 29 | Existing FdoClassDefinition does not contain any information that would allow to determine a type of the base RDBMS object. |
| 30 | There are cases when view-based classes should be distinguished from table-based classes to be able to handle behavioral differences: |
| 31 | |
| 32 | * Editing schema. View definition cannot be changed and therefore class schema cannot be changed. |
| 33 | |
| 34 | * Editing property values. Class data may not be editable. |
| 35 | |
| 36 | |
| 37 | == Proposed Solution == |
| 38 | |
| 39 | The following shows the proposed changes to !FdoClassDefinition: |
| 40 | |
| 41 | {{{ |
| 42 | class FdoClassDefinition : public FdoSchemaElement |
| 43 | { |
| 44 | ... |
| 45 | public: |
| 46 | ... |
| 47 | /// \brief |
| 48 | /// Gets the value of m_IsViewBased. It is true if a class is based on view; otherwise is false. |
| 49 | /// |
| 50 | /// \return |
| 51 | /// Returns bool |
| 52 | /// |
| 53 | FDO_API bool GetIsViewBased(); |
| 54 | |
| 55 | /// \brief |
| 56 | /// Sets the value of m_IsViewBased. It is true if a class is based on view; otherwise is false. |
| 57 | /// This is an internal method that can only be called by providers. Application should not use this method. |
| 58 | /// |
| 59 | /// \return |
| 60 | /// Returns nothing |
| 61 | /// |
| 62 | FDO_API void SetIsViewBased( bool value ); |
| 63 | ... |
| 64 | |
| 65 | private: |
| 66 | ... |
| 67 | FdoBoolean m_isViewBased; |
| 68 | ... |
| 69 | } |
| 70 | |
| 71 | }}} |
| 72 | == Implications == |
| 73 | |
| 74 | This change will not cause any functional or performance side effects. |
| 75 | |
| 76 | == Test Plan == |
| 77 | |
| 78 | Exisitng unit tests will be enhanced. |
| 79 | |