PropertyType.ELEMENT_REF_TYPE );
IPropertyType.ELEMENT_REF_TYPE );
	public Object validateValue( Module module, PropertyDefn defn, Object value )			throws PropertyValueException	{		if ( value == null )			return null;		ElementDefn targetDefn = (ElementDefn) defn.getTargetElementType( );		if ( value instanceof String )		{			logger.log( Level.FINE,					"Validate the value of the element reference property as a string: " //$NON-NLS-1$							+ value );			return validateStringValue( module, targetDefn, defn,					(String) value );		}		if ( value instanceof DesignElement )		{			logger.log( Level.FINE,					"Validate the value of the element reference property as a DesignElement " //$NON-NLS-1$							+ ( (DesignElement) value ).getName( ) );			DesignElement target = (DesignElement) value;			return validateElementValue( module, targetDefn, defn, target );		}		// Invalid property value.		logger.log( Level.SEVERE, "Invalid value type: " + value ); //$NON-NLS-1$		throw new PropertyValueException( value,				PropertyValueException.DESIGN_EXCEPTION_INVALID_VALUE,				PropertyType.ELEMENT_REF_TYPE );	}