File: System\Data\Mapping\ViewGeneration\ViewGenResults.cs
Project: ndp\fx\src\DataEntity\System.Data.Entity.csproj (System.Data.Entity)
//---------------------------------------------------------------------
// <copyright file="ViewgenResults.cs" company="Microsoft">
//      Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>
//
// @owner Microsoft
// @backupOwner Microsoft
//---------------------------------------------------------------------
 
using System.Data.Common.Utils;
using System.Data.Metadata.Edm;
using System.Data.Mapping.ViewGeneration.Structures;
using System.Data.EntityModel;
using System.Collections.Generic;
using System.Text;
 
namespace System.Data.Mapping.ViewGeneration
{
 
    // This class is responsible for keeping track of the results from view
    // generation - errors and correct views
    internal class ViewGenResults : InternalBase
    {
 
        #region Constructor
        internal ViewGenResults()
        {
            m_views = new KeyToListMap<EntitySetBase, GeneratedView>(EqualityComparer<EntitySetBase>.Default);
            m_errorLog = new ErrorLog();
        }
        #endregion
 
        #region Fields
        private KeyToListMap<EntitySetBase, GeneratedView> m_views;
        private ErrorLog m_errorLog;
        #endregion
 
        #region Properties
        // effects: Returns the generated views
        internal KeyToListMap<EntitySetBase, GeneratedView> Views
        {
            get
            {
                return m_views;
            }
        }
 
        // effects: Returns the errors that were generated. If no errors,
        // returns an empty list
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] // referenced (indirectly) by System.Data.Entity.Design.dll
        internal IEnumerable<EdmSchemaError> Errors
        {
            get
            {
                return m_errorLog.Errors;
            }
        }
 
        // effects: Returns true iff any error was generated
        internal bool HasErrors
        {
            get
            {
                return m_errorLog.Count > 0;
            }
        }
        #endregion
 
        #region Methods
        // effects: Add the set of errors in errorLog to this
        internal void AddErrors(ErrorLog errorLog)
        {
            m_errorLog.Merge(errorLog);
        }
 
        // effects: Returns all the errors as a string (not to be used for
        // end user strings, i.e., in exceptions etc)
        internal string ErrorsToString()
        {
            return m_errorLog.ToString();
        }
 
        internal override void ToCompactString(StringBuilder builder)
        {
            // Number of views
            builder.Append(m_errorLog.Count);
            builder.Append(" ");
            // Print the errors only
            m_errorLog.ToCompactString(builder);
        }
        #endregion
    }
}