/// <summary>Appends a qualifier to the qualifier list and sets respective options.</summary> /// <param name="qualNode">a qualifier node.</param> /// <exception cref="Com.Adobe.Xmp.XMPException"></exception> public virtual void AddQualifier(Com.Adobe.Xmp.Impl.XMPNode qualNode) { AssertQualifierNotExisting(qualNode.GetName()); qualNode.SetParent(this); qualNode.GetOptions().SetQualifier(true); GetOptions().SetHasQualifiers(true); // contraints if (qualNode.IsLanguageNode()) { // "xml:lang" is always first and the option "hasLanguage" is set options.SetHasLanguage(true); GetQualifier().Add(0, qualNode); } else { if (qualNode.IsTypeNode()) { // "rdf:type" must be first or second after "xml:lang" and the option "hasType" is set options.SetHasType(true); GetQualifier().Add(!options.GetHasLanguage() ? 0 : 1, qualNode); } else { // other qualifiers are appended GetQualifier().Add(qualNode); } } }
/// <summary>Adds a node as child to this node.</summary> /// <param name="node">an XMPNode</param> /// <exception cref="Com.Adobe.Xmp.XMPException"></exception> public virtual void AddChild(Com.Adobe.Xmp.Impl.XMPNode node) { // check for duplicate properties AssertChildNotExisting(node.GetName()); node.SetParent(this); GetChildren().Add(node); }
/// <summary>Replaces a node with another one.</summary> /// <param name="index"> /// the index of the node that will be replaced. /// <em>Note:</em> The node children are indexed from [1..size]! /// </param> /// <param name="node">the replacement XMPNode</param> public virtual void ReplaceChild(int index, Com.Adobe.Xmp.Impl.XMPNode node) { node.SetParent(this); GetChildren().Set(index - 1, node); }
/// <summary>Adds a node as child to this node.</summary> /// <param name="index"> /// the index of the node <em>before</em> which the new one is inserted. /// <em>Note:</em> The node children are indexed from [1..size]! /// An index of size + 1 appends a node. /// </param> /// <param name="node">an XMPNode</param> /// <exception cref="Com.Adobe.Xmp.XMPException"></exception> public virtual void AddChild(int index, Com.Adobe.Xmp.Impl.XMPNode node) { AssertChildNotExisting(node.GetName()); node.SetParent(this); GetChildren().Add(index - 1, node); }