Merge pull request #820 from brendanzagaeski/master
[mono.git] / mcs / class / Microsoft.Build / Microsoft.Build.Execution / ProjectItemGroupTaskItemInstance.cs
1 //
2 // ProjectItemGroupTaskItemInstance.cs
3 //
4 // Author:
5 //    Atsushi Enomoto (atsushi@xamarin.com)
6 //
7 // (C) 2013 Xamarin Inc.
8 //
9 // Permission is hereby granted, free of charge, to any person obtaining
10 // a copy of this software and associated documentation files (the
11 // "Software"), to deal in the Software without restriction, including
12 // without limitation the rights to use, copy, modify, merge, publish,
13 // distribute, sublicense, and/or sell copies of the Software, and to
14 // permit persons to whom the Software is furnished to do so, subject to
15 // the following conditions:
16 // 
17 // The above copyright notice and this permission notice shall be
18 // included in all copies or substantial portions of the Software.
19 // 
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 //
28 using Microsoft.Build.Construction;
29 using System.Collections.Generic;
30 using System.Linq;
31
32 namespace Microsoft.Build.Execution
33 {
34         public class ProjectItemGroupTaskItemInstance
35         {
36                 internal ProjectItemGroupTaskItemInstance (ProjectItemElement xml)
37                 {
38                         Condition = xml.Condition;
39                         Exclude = xml.Exclude;
40                         Include = xml.Include;
41                         ItemType = xml.ItemType;
42                         Metadata = xml.Metadata.Select (m => new ProjectItemGroupTaskMetadataInstance (m)).ToArray ();
43                         Remove = xml.Remove;
44                         #if NET_4_5
45                         KeepDuplicates = xml.KeepDuplicates;
46                         KeepMetadata = xml.KeepMetadata;
47                         RemoveMetadata = xml.RemoveMetadata;
48                         
49                         ConditionLocation = xml.ConditionLocation;
50                         ExcludeLocation = xml.ExcludeLocation;
51                         IncludeLocation = xml.IncludeLocation;
52                         Location = xml.Location;
53                         KeepDuplicatesLocation = xml.KeepDuplicatesLocation;
54                         RemoveLocation = xml.RemoveLocation;
55                         RemoveMetadataLocation = xml.RemoveMetadataLocation;                    
56                         #endif
57                 }
58                 
59                 public string Condition { get; private set; }
60
61                 public string Exclude { get; private set; }
62
63                 public string Include { get; private set; }
64
65                 public string ItemType { get; private set; }
66
67                 public string KeepDuplicates { get; private set; }
68
69                 public string KeepMetadata { get; private set; }
70
71                 public ICollection<ProjectItemGroupTaskMetadataInstance> Metadata { get; private set; }
72
73                 public string Remove { get; private set; }
74
75                 public string RemoveMetadata { get; private set; }
76                 #if NET_4_5
77                 public ElementLocation ConditionLocation { get; private set; }
78
79                 public ElementLocation ExcludeLocation { get; private set; }
80
81                 public ElementLocation IncludeLocation { get; private set; }
82
83                 public ElementLocation KeepDuplicatesLocation { get; private set; }
84
85                 public ElementLocation KeepMetadataLocation { get; private set; }
86
87                 public ElementLocation Location { get; private set; }
88
89                 public ElementLocation RemoveLocation { get; private set; }
90
91                 public ElementLocation RemoveMetadataLocation { get; private set; }
92                 #endif
93         }
94 }
95