/// <summary> /// Creates a Variable Node. /// </summary> /// <param name="varname">Variable Name.</param> /// <returns></returns> public virtual IVariableNode CreateVariableNode(string varname) { return(_factory.CreateVariableNode(varname)); }
/// <summary> /// Copies a Node using another Node Factory /// </summary> /// <param name="original">Node to copy</param> /// <param name="target">Factory to copy into</param> /// <returns></returns> /// <remarks> /// <para> /// <strong>Warning:</strong> Copying Blank Nodes may lead to unforseen circumstances since no remapping of IDs between Factories is done /// </para> /// </remarks> public static INode CopyNode(INode original, INodeFactory target) { if (ReferenceEquals(original.Graph, target)) return original; switch (original.NodeType) { case NodeType.Blank: return target.CreateBlankNode(((IBlankNode)original).InternalID); case NodeType.GraphLiteral: return target.CreateGraphLiteralNode(((IGraphLiteralNode)original).SubGraph); case NodeType.Literal: ILiteralNode lit = (ILiteralNode)original; if (lit.DataType != null) { return target.CreateLiteralNode(lit.Value, lit.DataType); } else if (!lit.Language.Equals(String.Empty)) { return target.CreateLiteralNode(lit.Value, lit.Language); } else { return target.CreateLiteralNode(lit.Value); } case NodeType.Uri: return target.CreateUriNode(((IUriNode)original).Uri); case NodeType.Variable: return target.CreateVariableNode(((IVariableNode)original).VariableName); default: throw new RdfException("Unable to Copy '" + original.GetType().ToString() + "' Nodes between Node Factories"); } }
public static INode AsVariableNode(this INodeFactory nodeFactory, string value) { return(nodeFactory.CreateVariableNode(value)); }