// // References.cs - defines an object that references a ReferencedBy object // // Author: // Michael Becker // // Copyright (c) 2011-2020 Mike Becker's Software // // This program 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. // // This program 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 this program. If not, see . using System; namespace UniversalEditor { /// /// Defines an object that references a object. /// /// The object referenced by this object. public interface References { /// /// Creates or returns an existing object referring to this object. /// /// A object that can be used to create additional instances of this object. TRef MakeReference(); } /// /// Defines an object that is referenced by the given object. /// /// The object which references this object. public interface ReferencedBy { /// /// Creates an instance of this object from the described in the associated object. /// /// An instance of this object created from the described in the associated object. TObj Create(); /// /// Gets the detail fields that are shown in lists of this object in details view. /// /// An array of s that are shown in detail columns of lists of this object. string[] GetDetails(); } }