Free cookie consent management tool by TermsFeed Policy Generator

source: trunk/sources/HeuristicLab.PluginInfrastructure/Attributes/ApplicationAttribute.cs @ 3633

Last change on this file since 3633 was 3092, checked in by gkronber, 15 years ago

Fixed relevant warnings in the plugin infrastructure (didn't fix warnings about XML comments of members that will be removed soon). #915 (Remove warnings from HL 3.3 solution)

File size: 3.3 KB
Line 
1#region License Information
2/* HeuristicLab
3 * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
4 *
5 * This file is part of HeuristicLab.
6 *
7 * HeuristicLab is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * HeuristicLab is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
19 */
20#endregion
21
22using System;
23using System.Collections.Generic;
24using System.Text;
25
26namespace HeuristicLab.PluginInfrastructure {
27  /// <summary>
28  /// This attribute can be used to specify meta data for applications.
29  /// For example to specify name and description of applications.
30  /// </summary>
31  [AttributeUsage(AttributeTargets.Class)]
32  public sealed class ApplicationAttribute : System.Attribute {
33    private string name;
34    /// <summary>
35    /// Gets the name of the application.
36    /// </summary>
37    public string Name {
38      get { return name; }
39    }
40
41    private string description;
42    /// <summary>
43    /// Gets the description of the application.
44    /// </summary>
45    public string Description {
46      get { return description; }
47    }
48
49    private bool restartOnErrors;
50    /// <summary>
51    /// Gets whether the plugin should be automatically restarted when it is closed because of an exception (for services).
52    /// </summary>
53    public bool RestartOnErrors {
54      get { return restartOnErrors; }
55    }
56
57    /// <summary>
58    /// Initializes a new instance of <see cref="ApplicationAttribute"/>.
59    /// <param name="name">Name of the application</param>
60    /// </summary>
61    public ApplicationAttribute(string name)
62      : this(name, String.Empty) {
63    }
64
65    /// <summary>
66    /// Initializes a new instance of <see cref="ApplicationAttribute"/>.
67    /// <param name="name">Name of the application</param>
68    /// <param name="description">Description of the application</param>
69    /// </summary>
70    public ApplicationAttribute(string name, string description)
71      : this(name, description, false) {
72    }
73
74    /// <summary>
75    /// Initializes a new instance of <see cref="ApplicationAttribute"/>.
76    /// <param name="name">Name of the application</param>
77    /// <param name="description">Description of the application</param>
78    /// <param name="restartOnErrors">Flag that indicates if the application should be restarted on exceptions (for services)</param>
79    /// </summary>
80    public ApplicationAttribute(string name, string description, bool restartOnErrors) {
81      if (name == null) throw new ArgumentNullException("name", "Application name is null.");
82      if (description == null) throw new ArgumentNullException("description", "Application description is null.");
83      this.name = name;
84      this.description = description;
85      this.restartOnErrors = restartOnErrors;
86    }
87  }
88}
Note: See TracBrowser for help on using the repository browser.