Bug 149251 Inconsistent Handling of a Non-inheritable ROM Property
For a ROM property defined to be non-inheritable, an empty string property value should be consistently handled as an empty string, not as null. For example, an oda.dataSource extension defines a data source property with canInherit=false. When a oda-data-source handle get saved in a report design, it correctly includes the tag for such property, even when an empty string value is specified. <oda-data-source extensionID="my.oda.plugin" name="my Data Source" id="24"> ... <property name="ApplicationServer"></property> </oda-data-source> However, later when using the DE API to read its property value, a null is returned. Then when the report design is subsequently saved, the property tag is lost. Expects that an empty string value of a non-inhertiable property should be preserved.
model/org.eclipse.birt.report.model/src/org/eclipse/birt/report/model/metadata/ElementDefn.java
* <p>
 * Meta-data serves two key roles. First, it provides information that the core
 * implementation needs to correctly model the various elements. Second, it is
 * useful to the UI to provide information about elements. For example, the
 * property sheet can use the meta-data to determine the set of properties for
 * an element, the display names of each property, the data type, and any
 * special UI builders required.
 * 
 * <h3>Properties and Property Types</h3>
 * 
 * Most elements define properties. A property is simply something that the user
 * can set about the element such as its name, or size, or color. Property
 * information appears in three forms, which are easy to confuse.
 * <dl>
 * <dt><strong>Property type </strong></dt>
 * <dd>A description of the type of a property. Many properties can share the
 * same type. For example, foreground color and background color are both
 * properties of type color. Property types are defined by the implementation
 * team and are defined in the data dictionary.</dd>
 * 
 * <dt><strong>Property </strong></dt>
 * <dd>A property is the definition of an attribute of an element, and consists
 * of a name and a property type. Properties are of several kinds as described
 * below. The property is also a definition: all elements share the same set of
 * property definitions. The element definition (ElementDefn) defines the set of
 * properties available on that element.</dd>
 * 
 * <dt><strong>Property value </strong></dt>
 * <dd>A property value is the actual value that the user sets for a property.
 * A property value is associated with a element, and is stored in the