view api/Objects/InvalidContainershipException.cs @ 104:2f3cafb69799

Re #121: Migrate to AGPL license * Update all API files to AGPL license * Include AGPL license and remove GPL/LGPL documents * Fix copyright dates where they're known
author IBBoard <dev@ibboard.co.uk>
date Sat, 15 Aug 2009 10:36:50 +0000
parents 3c77722a02b5
children ece26f6a62f3
line source
1 // This file (InvalidContainershipException.cs) is a part of the IBBoard.WarFoundry.API project and is copyright 2009 IBBoard
2 //
3 // The file and the library/program it is in are licensed and distributed, without warranty, under the GNU Affero GPL license, either version 3 of the License or (at your option) any later version. Please see COPYING for more information and the full license.
5 using System;
7 namespace IBBoard.WarFoundry.API.Objects
8 {
9 /// <summary>
10 /// A custom exception for when a unit was added as a sub-unit of another unit, but was not of a <see cref=" UnitType"/> that can be contained
11 /// by that unit.
12 /// </summary>
13 public class InvalidContainershipException : Exception
14 {
15 private Unit containing;
16 private Unit contained;
18 public InvalidContainershipException(Unit containingUnit, Unit containedUnit) : base(CreateMessageString(containingUnit, containedUnit))
19 {
20 containing = containingUnit;
21 contained = containedUnit;
22 }
24 private static string CreateMessageString(Unit containingUnit, Unit containedUnit)
25 {
26 return containingUnit.Name+" cannot contain "+containedUnit.Name+" because units of "+containingUnit.UnitType.Name+" cannot contain units of "+containedUnit.UnitType.Name;
27 }
29 /// <value>
30 /// The <see cref=" Unit"/> that the contained unit was added to
31 /// </value>
32 public Unit ContainingUnit
33 {
34 get { return containing; }
35 }
37 /// <value>
38 /// The <see cref=" Unit"/> that was added as a contained unit, but which was not of an allowed type
39 /// </value>
40 public Unit ContainedUnit
41 {
42 get { return contained; }
43 }
44 }
45 }