Mercurial > repos > IBDev-IBBoard.WarFoundry.API
view api/Factories/Xml/WarFoundryXmlElementName.cs @ 47:85f2b9c3609c
Re #13 - Use XPath for file loading
* Replace loading of race unit types, categories and equipment with XPath method
* Add loading of abilities using XPath
Also:
* Add implementation for Ability
* Add AddAbility method to Race
* Alter some logging so that "for ID" is followed by ID not name
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Thu, 26 Mar 2009 20:49:42 +0000 |
parents | 306558904c2a |
children | 2f3cafb69799 |
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 under the GNU LGPL license, either version 3 of the License or (at your option) any later version. Please see COPYING.LGPL 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 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; } } }