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/ElementRefPropertyType.java
* resolved reference points to an the "target" element itself. An unresolved
 * reference gives only the name of the target element, and the element itself
 * may or may not exist. This allows the model to handle designs that refer to
 * template elements that have since been removed or renamed.
 * <p>
 * Elements that contain properties of this type must provide code to perform
 * semantic checks on the reference property. This is done to avoid the need to
 * search the property list to find any properties that are of this type.
 * <p>
 * The reference value are stored as an <code>ElementRefValue</code>
 * 
 * @see ElementRefValue
 */
public class ElementRefPropertyType extends PropertyType
{
	/**
	 * Logger instance.
	 */
	private static Logger logger = Logger
			.getLogger( ElementRefPropertyType.class.getName( ) );
	/**
	 * Display name key.
	 */
	private static final String DISPLAY_NAME_KEY = "Property.element"; 
	/**
	 * Constructor.
	 */
	public ElementRefPropertyType( )
	{
		super( DISPLAY_NAME_KEY );