1 // Copyright (c) Microsoft. All rights reserved. 2 // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 //----------------------------------------------------------------------- 4 // </copyright> 5 // <summary>Interface representing item definition objects for use by the Evaulator.</summary> 6 //----------------------------------------------------------------------- 7 8 using System; 9 using System.Collections.Generic; 10 using System.Text; 11 using Microsoft.Build.Construction; 12 13 namespace Microsoft.Build.Evaluation 14 { 15 /// <summary> 16 /// Interface representing item definition objects for use by the Evaulator. 17 /// </summary> 18 /// <typeparam name="M">Type of metadata objects.</typeparam> 19 internal interface IItemDefinition<M> : IMetadataTable 20 where M : class, IMetadatum 21 { 22 /// <summary> 23 /// Gets any metadatum on this item definition with the specified name. 24 /// </summary> GetMetadata(string name)25 M GetMetadata(string name); 26 27 /// <summary> 28 /// Adds the specified metadata to the item definition. 29 /// </summary> SetMetadata(ProjectMetadataElement metadataElement, string evaluatedValue, M predecessor)30 M SetMetadata(ProjectMetadataElement metadataElement, string evaluatedValue, M predecessor); 31 } 32 } 33