Remove excessive shortcut key matching in ToolStrip
[mono.git] / mcs / class / System.ComponentModel.Composition / src / ComponentModel / System / ComponentModel / Composition / ReflectionModel / PartCreatorExportDefinition.cs
1 // -----------------------------------------------------------------------\r
2 // Copyright (c) Microsoft Corporation.  All rights reserved.\r
3 // -----------------------------------------------------------------------\r
4 using System;\r
5 using System.Collections.Generic;\r
6 using System.ComponentModel.Composition.Hosting;\r
7 using System.ComponentModel.Composition.Primitives;\r
8 \r
9 namespace System.ComponentModel.Composition.ReflectionModel\r
10 {\r
11     internal class PartCreatorExportDefinition : ExportDefinition\r
12     {\r
13         private readonly ExportDefinition _productDefinition;\r
14         private IDictionary<string, object> _metadata;\r
15 \r
16         public PartCreatorExportDefinition(ExportDefinition productDefinition)\r
17             : base()\r
18         {\r
19             this._productDefinition = productDefinition;\r
20         }\r
21 \r
22         public override string ContractName\r
23         {\r
24             get\r
25             {\r
26                 return CompositionConstants.PartCreatorContractName;\r
27             }\r
28         }\r
29 \r
30         public override IDictionary<string, object> Metadata\r
31         {\r
32             get\r
33             {\r
34                 if (this._metadata == null)\r
35                 {\r
36                     var metadata = new Dictionary<string, object>(this._productDefinition.Metadata);\r
37                     metadata[CompositionConstants.ExportTypeIdentityMetadataName] = CompositionConstants.PartCreatorTypeIdentity;\r
38                     metadata[CompositionConstants.ProductDefinitionMetadataName] = this._productDefinition;\r
39 \r
40                     this._metadata = metadata.AsReadOnly();\r
41                 }\r
42                 return this._metadata;\r
43             }\r
44         }\r
45 \r
46         internal static bool IsProductConstraintSatisfiedBy(ImportDefinition productImportDefinition, ExportDefinition exportDefinition)\r
47         {\r
48             object productValue = null;\r
49             if (exportDefinition.Metadata.TryGetValue(CompositionConstants.ProductDefinitionMetadataName, out productValue))\r
50             {\r
51                 ExportDefinition productDefinition = productValue as ExportDefinition;\r
52 \r
53                 if (productDefinition != null)\r
54                 {\r
55                     return productImportDefinition.IsConstraintSatisfiedBy(productDefinition);\r
56                 }\r
57             }\r
58 \r
59             return false;\r
60         }\r
61     }\r
62 }\r