Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / mcs / class / Microsoft.Build / Microsoft.Build.Execution / TargetResult.cs
1 // TargetResult.cs
2 //
3 // Author:
4 //   Rolf Bjarne Kvinge (rolf@xamarin.com)
5 //
6 // Copyright (C) 2011 Xamarin Inc.
7 //
8 // Permission is hereby granted, free of charge, to any person obtaining
9 // a copy of this software and associated documentation files (the
10 // "Software"), to deal in the Software without restriction, including
11 // without limitation the rights to use, copy, modify, merge, publish,
12 // distribute, sublicense, and/or sell copies of the Software, and to
13 // permit persons to whom the Software is furnished to do so, subject to
14 // the following conditions:
15 // 
16 // The above copyright notice and this permission notice shall be
17 // included in all copies or substantial portions of the Software.
18 // 
19 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
20 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
22 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
23 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
24 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
25 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26 //
27
28 using Microsoft.Build.Framework;
29 using System;
30 using System.Linq;
31 using System.Collections.Generic;
32
33 namespace Microsoft.Build.Execution
34 {
35         public class TargetResult : ITargetResult
36         {
37                 internal TargetResult ()
38                 {
39                 }
40
41                 public Exception Exception { get; private set; }
42
43                 public ITaskItem[] Items { get; private set; }
44
45                 public TargetResultCode ResultCode { get; private set; }
46
47                 internal void Failure (Exception exception)
48                 {
49                         this.Exception = exception;
50                         ResultCode = TargetResultCode.Failure;
51                 }
52                 
53                 internal void Skip ()
54                 {
55                         ResultCode = TargetResultCode.Skipped;
56                 }
57                 
58                 internal void Success (IEnumerable<ITaskItem> items)
59                 {
60                         Items = items.ToArray ();
61                         ResultCode = TargetResultCode.Success; 
62                 }
63         }
64 }
65