/// <summary> /// Loads the property definition from the reader /// </summary> protected override void LoadFromReader() { _reader.Read(); LoadPropertyName(); LoadDisplayName(); LoadPropertyType(); LoadReadWriteRule(); LoadDefaultValue(); LoadDatabaseFieldName(); LoadDescription(); LoadCompulsory(); LoadAutoIncrementing(); LoadLength(); LoadKeepValuePrivate(); _reader.Read(); _propDef = _defClassFactory.CreatePropDef(_propertyName, _assemblyName, _typeName, _readWriteRule, _databaseFieldName, _defaultValueString, _compulsory, _autoIncrementing, _length, _displayName, _description, _keepValuePrivate); while (_reader.Name == "rule") { var loader = new XmlRuleLoader(DtdLoader, _defClassFactory); loader.LoadRuleIntoProperty(_reader.ReadOuterXml(), _propDef); } int len = "lookupList".Length; if (_reader.Name.Length >= len && _reader.Name.Substring(_reader.Name.Length - len, len) == "LookupList") { XmlLookupListLoader.LoadLookupListIntoProperty(_reader.ReadOuterXml(), _propDef, DtdLoader, _defClassFactory); } }
/// <summary> /// Loads the lookup list data into the specified property definition /// </summary> /// <param name="sourceElement">The source element</param> /// <param name="def">The property definition to load into</param> /// <param name="dtdLoader">The dtd loader</param> /// <param name="defClassFactory">The factory for the definition classes</param> public static void LoadLookupListIntoProperty(string sourceElement, IPropDef def, DtdLoader dtdLoader, IDefClassFactory defClassFactory) { XmlDocument doc = new XmlDocument(); doc.LoadXml(sourceElement); if (doc.DocumentElement == null) { throw new HabaneroDeveloperException ("There was a problem loading the class definitions pleaser refer to the system administrator", "The load lookup list property could not be loaded since the source element does not contain a document name"); } string loaderClassName = "Xml" + doc.DocumentElement.Name + "Loader"; Type loaderType = Type.GetType (typeof(XmlLookupListLoader).Namespace + "." + loaderClassName, true, true); XmlLookupListLoader loader = (XmlLookupListLoader) Activator.CreateInstance(loaderType, new object[] { dtdLoader, defClassFactory }); def.LookupList = loader.LoadLookupList(doc.DocumentElement); }