Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
AssetLogMessage.cs
Go to the documentation of this file.
1 // Copyright (c) 2014 Silicon Studio Corp. (http://siliconstudio.co.jp)
2 // This file is distributed under GPL v3. See LICENSE.md for details.
3 using System.Collections.Generic;
4 
5 using SiliconStudio.Core.Diagnostics;
6 using SiliconStudio.Core.Reflection;
7 using SiliconStudio.Core.Serialization;
8 
9 namespace SiliconStudio.Assets.Diagnostics
10 {
11  /// <summary>
12  /// Provides a specialized <see cref="LogMessage"/> to give specific information about an asset.
13  /// </summary>
14  public class AssetLogMessage : LogMessage
15  {
16  private readonly Package package;
17 
18  /// <summary>
19  /// Initializes a new instance of the <see cref="AssetLogMessage" /> class.
20  /// </summary>
21  /// <param name="package">The package.</param>
22  /// <param name="assetReference">The asset reference.</param>
23  /// <param name="type">The type.</param>
24  /// <param name="messageCode">The message code.</param>
25  /// <exception cref="System.ArgumentNullException">asset</exception>
26  public AssetLogMessage(Package package, IContentReference assetReference, LogMessageType type, AssetMessageCode messageCode)
27  {
28  this.package = package;
29  AssetReference = assetReference;
30  Type = type;
31  MessageCode = messageCode;
32  Related = new List<IContentReference>();
33  Text = AssetMessageStrings.ResourceManager.GetString(messageCode.ToString()) ?? messageCode.ToString();
34  }
35 
36  /// <summary>
37  /// Initializes a new instance of the <see cref="AssetLogMessage" /> class.
38  /// </summary>
39  /// <param name="package">The package.</param>
40  /// <param name="assetReference">The asset reference.</param>
41  /// <param name="type">The type.</param>
42  /// <param name="messageCode">The message code.</param>
43  /// <param name="arguments">The arguments.</param>
44  /// <exception cref="System.ArgumentNullException">asset</exception>
45  public AssetLogMessage(Package package, IContentReference assetReference, LogMessageType type, AssetMessageCode messageCode, params object[] arguments)
46  {
47  this.package = package;
48  AssetReference = assetReference;
49  Type = type;
50  MessageCode = messageCode;
51  Related = new List<IContentReference>();
52  var message = AssetMessageStrings.ResourceManager.GetString(messageCode.ToString()) ?? messageCode.ToString();
53  Text = string.Format(message, arguments);
54  }
55 
56  /// <summary>
57  /// Gets or sets the message code.
58  /// </summary>
59  /// <value>The message code.</value>
60  public AssetMessageCode MessageCode { get; set; }
61 
62  /// <summary>
63  /// Gets or sets the asset this message applies to (optional).
64  /// </summary>
65  /// <value>The asset.</value>
66  public IContentReference AssetReference { get; set; }
67 
68  /// <summary>
69  /// Gets or sets the package.
70  /// </summary>
71  /// <value>The package.</value>
72  public Package Package { get { return package; } }
73 
74  /// <summary>
75  /// Gets or sets the member of the asset this message applies to. May be null.
76  /// </summary>
77  /// <value>The member.</value>
78  public IMemberDescriptor Member { get; set; }
79 
80  /// <summary>
81  /// Gets or sets the related references.
82  /// </summary>
83  /// <value>The related.</value>
84  public List<IContentReference> Related { get; private set; }
85  }
86 }
AssetLogMessage(Package package, IContentReference assetReference, LogMessageType type, AssetMessageCode messageCode, params object[] arguments)
Initializes a new instance of the AssetLogMessage class.
AssetMessageCode
A message code used by AssetLogMessage to identify an error/warning.
AssetLogMessage(Package package, IContentReference assetReference, LogMessageType type, AssetMessageCode messageCode)
Initializes a new instance of the AssetLogMessage class.
LogMessageType
Type of a LogMessage.
A base log message used by the logging infrastructure.
Definition: LogMessage.cs:13
Provides a specialized LogMessage to give specific information about an asset.
A package managing assets.
Definition: Package.cs:28
An interface that provides a reference to an asset.