Exemple #1
0
        /// <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);
        }
Exemple #2
0
        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;
        }