public IXmlAttributeValue Parse(IXmlAttributeValue xmlAttributeValue) { ReferenceNameAttributeValue attributeValue = new ReferenceNameAttributeValue(); CompositeElement result = null; string rawValue = xmlAttributeValue.UnquotedValue; try { result = ParseTypeNameOrAttributeValue(rawValue); } catch (SyntaxError syntaxError) { result = (CompositeElement)syntaxError.ParsingResult; result = handleError(result, syntaxError); } attributeValue.AddChild(new XmlToken(L4NTokenNodeType.QUOTE, new StringBuffer(new string('\"', 1)), 0, 1)); attributeValue.AddChild(result); int resultLegth = result.GetText().Length; if(resultLegth < rawValue.Length) { string suffix = rawValue.Substring(resultLegth); StringBuffer sb = new StringBuffer(suffix); XmlToken suffixToken = new XmlToken(L4NTokenNodeType.TEXT , sb, 0, suffix.Length); attributeValue.AddChild(suffixToken); } attributeValue.AddChild(new XmlToken(L4NTokenNodeType.QUOTE, new StringBuffer(new string('\"', 1)), 0, 1)); return attributeValue; }
protected IReferenceImpl[] CreateReferencesInternal(IXmlAttributeValue value) { Logger.LogMessage("CreateReferencesInternal for {0}", value.GetText()); IXmlValueToken valueToken = value.ToTreeNode().ValueToken; if (valueToken == null) { return null; } return new IReferenceImpl[] {new PropertyNameReference(this, valueToken, valueToken.UnquotedValueRange)}; }
public IXmlAttributeValue ParseReferenceIdentifier(IXmlAttributeValue xmlAttributeValue, IQualifier qualifier) { ReferenceModuleAttributeValue attributeValue = new ReferenceModuleAttributeValue(); return ParseAttributeValueAspect(xmlAttributeValue, attributeValue, delegate(string text) { return ParseMemberIdentifier (text, qualifier); }); }
public IXmlAttributeValue ParseReferenceName(IXmlAttributeValue xmlAttributeValue) { ReferenceNameAttributeValue attributeValue = new ReferenceNameAttributeValue(); return ParseAttributeValueAspect(xmlAttributeValue, attributeValue, ParseTypeNameOrAttributeValue); }
public IXmlAttributeValue ParseReferenceModule(IXmlAttributeValue xmlAttributeValue) { ReferenceModuleAttributeValue attributeValue = new ReferenceModuleAttributeValue(); return ParseAttributeValueAspect(xmlAttributeValue, attributeValue, ParseModule); }
private IXmlAttributeValue ParseAttributeValueAspect(IXmlAttributeValue xmlAttributeValue, CompositeElement newAttributeValue, StringParse stringParse) { if (xmlAttributeValue == null) throw new ArgumentNullException("xmlAttributeValue"); if (newAttributeValue == null) throw new ArgumentNullException("newAttributeValue"); if (stringParse == null) throw new ArgumentNullException("stringParse"); CompositeElement result = null; string rawValue = xmlAttributeValue.UnquotedValue; try { result = stringParse(rawValue); } catch (SyntaxError syntaxError) { result = (CompositeElement)syntaxError.ParsingResult; result = handleError(result, syntaxError); } newAttributeValue.AddChild(new XmlToken(L4NTokenNodeType.QUOTE, new StringBuffer(new string('\"', 1)), 0, 1)); newAttributeValue.AddChild(result); int resultLegth = result.GetText().Length; if(resultLegth < rawValue.Length) { string suffix = rawValue.Substring(resultLegth); StringBuffer sb = new StringBuffer(suffix); XmlToken suffixToken = new XmlToken(L4NTokenNodeType.TEXT , sb, 0, suffix.Length); newAttributeValue.AddChild(suffixToken); } newAttributeValue.AddChild(new XmlToken(L4NTokenNodeType.QUOTE, new StringBuffer(new string('\"', 1)), 0, 1)); return (IXmlAttributeValue)newAttributeValue; }
protected override void AppendNewChild(IXmlAttribute parent, IXmlAttributeValue child) { base.AppendNewChild(parent, child); }
private void ReplaceAttributeValue(IXmlAttribute attribute, IXmlAttributeValue newElement) { IXmlAttributeValueNode childNode = attribute.Value.ToTreeNode(); ITreeNode parent = attribute.ToTreeNode(); ((CompositeElement)parent).AddChildAfter(newElement.ToTreeNode(), childNode); ((CompositeElement)parent).DeleteChildRange(childNode, childNode); }
public IXmlAttributeValue ParseReferenceType(IXmlAttributeValue xmlAttributeValue, IQualifier qualifier) { ReferenceTypeAttributeValue attributeValue = new ReferenceTypeAttributeValue(); return ParseAttributeValueAspect(xmlAttributeValue, attributeValue, text => ParseTypeReference(text, qualifier)); }