Mercurial > repos > IBBoard.WarFoundry.API
view API/Factories/Xml/WarFoundryXmlElementName.cs @ 472:e6c93ceba119
Re #359: Add "only contained" attribute to unit types
* Make sure we add and remove from the parent unit appropriately
* Make sure that setting the unit's parent to null removes it from the parent
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Mon, 16 Apr 2012 20:14:23 +0100 |
parents | 3c4a6403a88c |
children |
line wrap: on
line source
// This file (WarFoundryXmlElementName.cs) is a part of the IBBoard.WarFoundry.API project and is copyright 2009 IBBoard. // // 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. using System; using System.Collections.Generic; using IBBoard.Xml; namespace IBBoard.WarFoundry.API.Factories.Xml { /// <summary> /// An enumeration class for valid WarFoundry XML elements, designed to imitate Java's extensible complex object enumerations. /// </summary> public class WarFoundryXmlElementName : IXmlElementName, IExtendedEnum<string> { public static WarFoundryXmlElementName SYSTEM_ELEMENT = new WarFoundryXmlElementName("SYSTEM_ELEMENT", "system"); public static WarFoundryXmlElementName ARMY_ELEMENT = new WarFoundryXmlElementName("ARMY_ELEMENT", "army"); public static WarFoundryXmlElementName RACE_ELEMENT = new WarFoundryXmlElementName("RACE_ELEMENT", "race"); public static WarFoundryXmlElementName ARMY_DEFAULTNAME_ELEMENT = new WarFoundryXmlElementName("ARMY_DEFAULTNAME_ELEMENT", "defaultName"); public static WarFoundryXmlElementName CATEGORIES_ELEMENT = new WarFoundryXmlElementName("CATEGORIES_ELEMENT", "categories"); public static WarFoundryXmlElementName CATEGORY_ELEMENT = new WarFoundryXmlElementName("CATEGORY_ELEMENT", "cat"); public static WarFoundryXmlElementName UNITTYPES_ELEMENT = new WarFoundryXmlElementName("UNITTYPES_ELEMENT", "units"); public static WarFoundryXmlElementName UNITTYPE_ELEMENT = new WarFoundryXmlElementName("UNITTYPE_ELEMENT", "unit"); public static WarFoundryXmlElementName RACE_EQUIPMENT_ITEMS_ELEMENT = new WarFoundryXmlElementName("RACE_EQUIPMENT_ITEMS_ELEMENT", "equipment"); public static WarFoundryXmlElementName RACE_EQUIPMENT_ITEM_ELEMENT = new WarFoundryXmlElementName("RACE_EQUIPMENT_ITEMS_ELEMENT", "equipmentItem"); private static ICollection<WarFoundryXmlElementName> enumValues; private string name; private string val; private WarFoundryXmlElementName(string elemName, string elemVal) { name = elemName; val = elemVal; } public string Name { get { return name; } } public string Value { get { return val; } } /// <summary> /// Gets an ICollection of the values so that they can be looped over like a standard enumeration. /// </summary> /// <returns> /// A <see cref="ICollection`1"/> of all of the static 'enumeration' values of the class. /// </returns> public static ICollection<WarFoundryXmlElementName> GetEnumValues() { if (enumValues == null) { enumValues = new WarFoundryXmlElementName[]{SYSTEM_ELEMENT, ARMY_ELEMENT, RACE_ELEMENT, CATEGORIES_ELEMENT, CATEGORY_ELEMENT, UNITTYPES_ELEMENT, UNITTYPE_ELEMENT}; } return enumValues; } } }