Fix bugs in sizing TableLayoutPanel (Xamarin bug 18638)
[mono.git] / mcs / class / System.ComponentModel.Composition / src / ComponentModel / System / ComponentModel / Composition / ReflectionModel / PartCreatorMemberImportDefinition.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 using System.Linq.Expressions;\r
9 using Microsoft.Internal;\r
10 \r
11 namespace System.ComponentModel.Composition.ReflectionModel\r
12 {\r
13     internal class PartCreatorMemberImportDefinition : ReflectionMemberImportDefinition, IPartCreatorImportDefinition\r
14     {\r
15         private readonly ContractBasedImportDefinition _productImportDefinition;\r
16 \r
17         public PartCreatorMemberImportDefinition(\r
18             LazyMemberInfo importingLazyMember,\r
19             ICompositionElement origin,\r
20             ContractBasedImportDefinition productImportDefinition)\r
21             : base(importingLazyMember, CompositionConstants.PartCreatorContractName, CompositionConstants.PartCreatorTypeIdentity,\r
22                 productImportDefinition.RequiredMetadata, productImportDefinition.Cardinality, productImportDefinition.IsRecomposable, CreationPolicy.Any, origin)\r
23         {\r
24             Assumes.NotNull(productImportDefinition);\r
25             this._productImportDefinition = productImportDefinition;\r
26         }\r
27 \r
28         public ContractBasedImportDefinition ProductImportDefinition { get { return this._productImportDefinition; } }\r
29 \r
30         public override bool IsConstraintSatisfiedBy(ExportDefinition exportDefinition)\r
31         {\r
32             if (!base.IsConstraintSatisfiedBy(exportDefinition))\r
33             {\r
34                 return false;\r
35             }\r
36 \r
37             return PartCreatorExportDefinition.IsProductConstraintSatisfiedBy(this._productImportDefinition, exportDefinition);\r
38         }\r
39 \r
40         public override Expression<Func<ExportDefinition, bool>> Constraint\r
41         {\r
42             get\r
43             {\r
44                 return ConstraintServices.CreatePartCreatorConstraint(base.Constraint, this._productImportDefinition);\r
45             }\r
46         }\r
47     }\r
48 }\r