public virtual INode AddJumpPoint(string name, INode targetNode) { INode jumpPointNode; if (targetNode.NodeType == NodeType.File) { jumpPointNode = new JumpPointFile((IFile)targetNode, this.Address.ResolveAddress(name)); } else if (targetNode.NodeType == NodeType.Directory) { jumpPointNode = new JumpPointDirectory((IDirectory)targetNode, this.Address.ResolveAddress(name)); } else { throw new NotSupportedException(targetNode.NodeType.ToString()); } if (jumpPoints.ContainsKey(name)) { OnJumpPointRemoved(new JumpPointEventArgs(name, targetNode, jumpPointNode)); jumpPoints.Remove(name); } jumpPoints.Add(name, jumpPointNode); OnJumpPointAdded(new JumpPointEventArgs(name, targetNode, jumpPointNode)); return(jumpPointNode); }
public virtual INode AddJumpPoint(string name, INode targetNode) { INode jumpPointNode; if (targetNode.NodeType == NodeType.File) { jumpPointNode = new JumpPointFile((IFile)targetNode, this.Address.ResolveAddress(name)); } else if (targetNode.NodeType == NodeType.Directory) { jumpPointNode = new JumpPointDirectory((IDirectory)targetNode, this.Address.ResolveAddress(name)); } else { throw new NotSupportedException(targetNode.NodeType.ToString()); } if (jumpPoints.ContainsKey(name)) { OnJumpPointRemoved(new JumpPointEventArgs(name, targetNode, jumpPointNode)); jumpPoints.Remove(name); } jumpPoints.Add(name, jumpPointNode); OnJumpPointAdded(new JumpPointEventArgs(name, targetNode, jumpPointNode)); return jumpPointNode; }