/// <summary> /// Returns a cloned instance of this NodePointer /// </summary> /// <returns></returns> public override INodePointer Clone() { FauxSifElementPointer fep = new FauxSifElementPointer(Parent, Name); fep.SetChild(fChild, fChildName); return(fep); }
private INodePointer BuildLegacyPointers(INodePointer parent, Element referencedField) { String[] xPathParts = fLegacyXpath.Split('/'); int currentSegment = 0; INodePointer root = null; INodePointer currentParent = parent; // Build the path while (currentSegment < xPathParts.Length - 1) { FauxSifElementPointer pointer = new FauxSifElementPointer(currentParent, xPathParts[currentSegment]); if (currentParent != null && currentParent is FauxSifElementPointer) { ((FauxSifElementPointer)currentParent).SetChild(pointer, xPathParts[currentSegment]); } currentParent = pointer; if (root == null) { root = pointer; } currentSegment++; } String finalSegment = xPathParts[currentSegment]; bool isAttribute = false; if (finalSegment.StartsWith("@")) { // This is an attribute finalSegment = finalSegment.Substring(1); isAttribute = true; } SurrogateSimpleFieldPointer fieldPointer = new SurrogateSimpleFieldPointer(currentParent, finalSegment, referencedField, isAttribute); if (currentParent != null && currentParent is FauxSifElementPointer) { ((FauxSifElementPointer)currentParent).SetChild(fieldPointer, finalSegment); } if (root == null) { root = fieldPointer; } return(root); }
/// <summary> /// Returns a cloned instance of this NodePointer /// </summary> /// <returns></returns> public override INodePointer Clone() { FauxSifElementPointer fep = new FauxSifElementPointer( Parent, Name ); fep.SetChild( fChild, fChildName ); return fep; }
private INodePointer BuildLegacyPointers( INodePointer parent, Element referencedField ) { String[] xPathParts = fLegacyXpath.Split( '/' ); int currentSegment = 0; INodePointer root = null; INodePointer currentParent = parent; // Build the path while ( currentSegment < xPathParts.Length - 1 ) { FauxSifElementPointer pointer = new FauxSifElementPointer( currentParent, xPathParts[currentSegment] ); if ( currentParent != null && currentParent is FauxSifElementPointer ) { ((FauxSifElementPointer) currentParent).SetChild( pointer, xPathParts[currentSegment] ); } currentParent = pointer; if ( root == null ) { root = pointer; } currentSegment++; } String finalSegment = xPathParts[currentSegment]; bool isAttribute = false; if ( finalSegment.StartsWith( "@" ) ) { // This is an attribute finalSegment = finalSegment.Substring( 1 ); isAttribute = true; } SurrogateSimpleFieldPointer fieldPointer = new SurrogateSimpleFieldPointer( currentParent, finalSegment, referencedField, isAttribute ); if ( currentParent != null && currentParent is FauxSifElementPointer ) { ((FauxSifElementPointer) currentParent).SetChild( fieldPointer, finalSegment ); } if ( root == null ) { root = fieldPointer; } return root; }