public override ParsingObject CreateChildParsingObject(ILocation location, string tagid, TagAttributes attributes)
{
switch (mode) {
case ParseChildrenMode.DefaultProperty:
//oops, we didn't need to tokenise this.
innerText += location.PlainText;
//how do we get end tag?
throw new NotImplementedException ("Inner default properties that look like tags have not been implemented yet.");
case ParseChildrenMode.DefaultEncodedProperty:
innerText += System.Web.HttpUtility.HtmlDecode (location.PlainText);
//how do we get end tag?
throw new NotImplementedException ("Inner default properties that look like tags have not been implemented yet.");
case ParseChildrenMode.Controls:
//html tags
if (tagid.IndexOf(':') == -1)
return new HtmlParsingObject (location.PlainText, tagid, this);
goto case ParseChildrenMode.DefaultCollectionProperty;
case ParseChildrenMode.DefaultCollectionProperty:
string[] str = tagid.Split(':');
if (str.Length != 2)
throw new ParseException (location, "Server tag name is not of form prefix:name");
Type tagType = WebFormReferenceManager.GetObjectType(str[0], str[1]);
if (tagType == null)
throw new ParseException(location, "The tag " + tagid + "has not been registered");
return new ServerObjectParsingObject (tagType, attributes.GetDictionary(null), tagid, this);
case ParseChildrenMode.Properties:
throw new NotImplementedException ("Multiple child properties have not yet been implemented.");
}
throw new ParseException (location, "Unexpected state encountered: ");
}