/// <summary>
        /// Overrideable method to allow the derived class to create messages.
        /// </summary>
        /// <param name="description"></param>
        /// <param name="code"></param>
        /// <param name="violationType"></param>
        /// <param name="elements"></param>
        /// <returns></returns>
        protected override ValidationMessage ConstructValidationMessage(string description, string code, ViolationType violationType, params ModelElement[] elements)
        {
            var message = new ProductStoreTaskValidationMessage(this, description, TaskCategory.BuildCompile, code, violationType, null);

            message.UpdateReferencedModelElements(elements);

            return(message);
        }
        /// <summary>
        /// Overrideable method to allow the derived class to create messages.
        /// </summary>
        /// <param name="description"></param>
        /// <param name="code"></param>
        /// <param name="violationType"></param>
        /// <param name="elements"></param>
        /// <returns></returns>
        protected override ValidationMessage ConstructValidationMessage(string description, string code, ViolationType violationType, params ModelElement[] elements)
        {
            var message = new ProductStoreTaskValidationMessage(this, description, TaskCategory.BuildCompile, code, violationType, null);
            message.UpdateReferencedModelElements(elements);

            return message;
        }