#region License Information /* HeuristicLab * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL) * * This file is part of HeuristicLab. * * HeuristicLab is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * HeuristicLab is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with HeuristicLab. If not, see . */ #endregion using System; namespace HeuristicLab.PluginInfrastructure { /// /// This attribute can be used to specify meta data for applications. /// For example to specify name and description of applications. /// [AttributeUsage(AttributeTargets.Class)] public sealed class ApplicationAttribute : System.Attribute { private string name; /// /// Gets the name of the application. /// public string Name { get { return name; } } private string description; /// /// Gets the description of the application. /// public string Description { get { return description; } } private bool restartOnErrors; /// /// Gets whether the plugin should be automatically restarted when it is closed because of an exception (for services). /// public bool RestartOnErrors { get { return restartOnErrors; } } /// /// Initializes a new instance of . /// Name of the application /// public ApplicationAttribute(string name) : this(name, String.Empty) { } /// /// Initializes a new instance of . /// Name of the application /// Description of the application /// public ApplicationAttribute(string name, string description) : this(name, description, false) { } /// /// Initializes a new instance of . /// Name of the application /// Description of the application /// Flag that indicates if the application should be restarted on exceptions (for services) /// public ApplicationAttribute(string name, string description, bool restartOnErrors) { if (name == null) throw new ArgumentNullException("name", "Application name is null."); if (description == null) throw new ArgumentNullException("description", "Application description is null."); this.name = name; this.description = description; this.restartOnErrors = restartOnErrors; } } }