From: Jan T. <de...@us...> - 2003-05-29 16:04:23
|
Update of /cvsroot/net-script/netscript2/src/perl/NetScript/Engine In directory sc8-pr-cvs1:/tmp/cvs-serv28851 Modified Files: BasicStatement.pm DOMWalker.pm Log Message: * implemented DAL Index: BasicStatement.pm =================================================================== RCS file: /cvsroot/net-script/netscript2/src/perl/NetScript/Engine/BasicStatement.pm,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** BasicStatement.pm 9 Jun 2002 12:50:04 -0000 1.7 --- BasicStatement.pm 29 May 2003 16:04:19 -0000 1.8 *************** *** 23,27 **** - use XML::DOM2::Node; use NetScript::Libraries::DebugLibrary; --- 23,26 ---- *************** *** 55,58 **** --- 54,58 ---- $this -> { m_document } = $document; $this -> { m_interpreter } = $interpreter; + $this -> { m_DAL } = $interpreter -> getDAL(); $this -> SUPER::init(); } *************** *** 72,96 **** # clone the node into the new document ! my $newNode = $document -> importNode( $node, 0 ); # Check for the Node Type. ! if ( $newNode -> getNodeType() == $XML::DOM2::Node::ELEMENT_NODE ) { # attributes in elements will be checked for variables ! my $attributes = $newNode -> getAttributes(); ! my $length = $attributes -> getLength() -1; for ( 0..$length ) { ! my $attribute = $attributes -> item( $_ ); ! my $value = $attribute -> getValue(); ! my $name = $attribute -> getNodeName(); $value = $interpreter -> getStatementEvaluator() -> evaluateStatement( $value ); ! $attribute -> setValue( $value ); } } ! elsif ( $newNode -> getNodeType() == $XML::DOM2::Node::TEXT_NODE ) { ! my $text = $newNode -> getData(); $text = $interpreter -> getStatementEvaluator() -> evaluateStatement( $text ); ! $newNode -> setData( $text ); } --- 72,96 ---- # clone the node into the new document ! my $newNode = $this -> dal() -> importNode( $document, $node, 0 ); # Check for the Node Type. ! if ( $this -> dal() -> isElementNode( $newNode ) ) { # attributes in elements will be checked for variables ! my $attributes = $this -> dal() -> getAttributes( $newNode ); ! my $length = $this -> dal() -> getLength( $attributes ) - 1; for ( 0..$length ) { ! my $attribute = $this -> dal() -> getItemAt( $attributes, $_ ); ! my $value = $this -> dal() -> getAttrValue( $attribute ); ! my $name = $this -> dal() -> getNodeName( $attribute ); $value = $interpreter -> getStatementEvaluator() -> evaluateStatement( $value ); ! $this -> dal() -> setAttrValue( $attribute, $value ); } } ! elsif ( $this -> dal() -> isTextNode( $newNode ) ) { ! my $text = $this -> dal() -> getCData( $newNode ); $text = $interpreter -> getStatementEvaluator() -> evaluateStatement( $text ); ! $this -> dal() -> setCData( $newNode, $text ); } *************** *** 110,113 **** --- 110,122 ---- $this -> { m_interpreter }; } + + #/** + # Returns the currently used DAL. + #*/ + sub dal { + my ( $this ) = @_; + $this -> { m_DAL }; + } + #/** Index: DOMWalker.pm =================================================================== RCS file: /cvsroot/net-script/netscript2/src/perl/NetScript/Engine/DOMWalker.pm,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** DOMWalker.pm 24 Sep 2002 22:21:18 -0000 1.10 --- DOMWalker.pm 29 May 2003 16:04:20 -0000 1.11 *************** *** 21,29 **** package NetScript::Engine::DOMWalker; - use NetScript::Engine::BasicStatement; - use XML::DOM2::DOMImplementation; - use XML::DOM2::Document; - use XML::DOM2::Node; use vars qw( $DOCUMENT_START_EVENT $DOCUMENT_END_EVENT $ELEMENT_START_EVENT --- 21,25 ---- *************** *** 110,113 **** --- 106,110 ---- $this -> { m_interpreter } = $interpreter; + $this -> { m_DAL } = $interpreter -> getDAL(); return $this; # return Object } *************** *** 215,223 **** # append clone to document ! $this -> currentTarget() -> appendChild( $clone ); # set current target node to new node ! if ( $clone -> getNodeType() == $XML::DOM2::Node::ELEMENT_NODE && ! $isRefNode ) { $this -> setCurrentTarget( $clone ) ; } --- 212,219 ---- # append clone to document ! $this -> dal() -> appendChild( $this -> currentTarget(), $clone ); # set current target node to new node ! if ( $this -> dal() -> isElementNode( $clone ) && $isRefNode ) { $this -> setCurrentTarget( $clone ) ; } *************** *** 260,269 **** my ( $this, $sourceDocument ) = @_; - my $di = XML::DOM2::DOMImplementation -> new(); # create target document ! my $document = $di -> createDocument( ! "dummy", "dummy:dummy" ); # remove document element ! $document -> removeChild( $document -> getDocumentElement() ); $this -> setCurrentTarget( $document ); --- 256,263 ---- my ( $this, $sourceDocument ) = @_; # create target document ! my $document = $this -> dal() -> createDocument( "dummy", "dummy:dummy" ); # remove document element ! $this -> dal() -> removeChild( $document, $this -> dal() -> getDocumentElement( $document ) ); $this -> setCurrentTarget( $document ); *************** *** 312,316 **** my $nextSource = undef; if ( $source ) { ! $nextSource = $source -> getFirstChild(); unless ( $nextSource ) { $this -> stepSourceNext(); --- 306,310 ---- my $nextSource = undef; if ( $source ) { ! $nextSource = $this -> dal() -> getFirstChild( $source ); unless ( $nextSource ) { $this -> stepSourceNext(); *************** *** 330,334 **** my ($this) = @_; my $source = $this -> currentSource(); ! $this -> setCurrentSource( $source -> getParentNode() ); } --- 324,328 ---- my ($this) = @_; my $source = $this -> currentSource(); ! $this -> setCurrentSource( $this -> dal() -> getParentNode( $source ) ); } *************** *** 340,344 **** my ( $this ) = @_; my $target = $this -> currentTarget(); ! $this -> setCurrentTarget( $target -> getParentNode() ); } --- 334,338 ---- my ( $this ) = @_; my $target = $this -> currentTarget(); ! $this -> setCurrentTarget( $this -> dal() -> getParentNode( $target ) ); } *************** *** 355,359 **** if ( $source ) { ! my $nextSource = $source -> getNextSibling(); unless ( $nextSource ) { $this -> finishNode( $source ); --- 349,353 ---- if ( $source ) { ! my $nextSource = $this -> dal() -> getNextSibling( $source ); unless ( $nextSource ) { $this -> finishNode( $source ); *************** *** 361,367 **** return; } ! my $parent = $source -> getParentNode(); while ( defined( $parent ) && !defined( $nextSource ) ) { ! $nextSource = $parent -> getNextSibling(); unless( $nextSource ) { # parent is finished --- 355,361 ---- return; } ! my $parent = $this -> dal() -> getParentNode( $source ); while ( defined( $parent ) && !defined( $nextSource ) ) { ! $nextSource = $this -> dal() -> getNextSibling( $parent ); unless( $nextSource ) { # parent is finished *************** *** 370,374 **** return; # stop processing } ! $parent = $parent -> getParentNode(); } else { --- 364,368 ---- return; # stop processing } ! $parent = $this -> dal() -> getParentNode( $parent ); } else { *************** *** 411,429 **** sub createEvent { my ( $this, $node ) = @_; - my $nodeType = $node -> getNodeType(); my $eventType; ! if ( $nodeType == $XML::DOM2::Node::ELEMENT_NODE ) { $eventType = $NetScript::Engine::DOMWalker::ELEMENT_START_EVENT; } ! elsif ( $nodeType == $XML::DOM2::Node::TEXT_NODE ) { $eventType = $NetScript::Engine::DOMWalker::TEXT_EVENT; } ! elsif ( $nodeType == $XML::DOM2::Node::PROCESSING_INSTRUCTION_NODE ) { $eventType = $NetScript::Engine::DOMWalker::PI_EVENT; } ! elsif ( $nodeType == $XML::DOM2::Node::COMMENT_NODE ) { $eventType = $NetScript::Engine::DOMWalker::COMMENT_EVENT; } ! elsif ( $nodeType == $XML::DOM2::Node::DOCUMENT_NODE ) { $eventType = $NetScript::Engine::DOMWalker::DOCUMENT_START_EVENT; } --- 405,422 ---- sub createEvent { my ( $this, $node ) = @_; my $eventType; ! if ( $this -> dal() -> isElementNode( $node ) ) { $eventType = $NetScript::Engine::DOMWalker::ELEMENT_START_EVENT; } ! elsif ( $this -> dal() -> isTextNode( $node ) ) { $eventType = $NetScript::Engine::DOMWalker::TEXT_EVENT; } ! elsif ( $this -> dal() -> isProcessingInstructionNode( $node ) ) { $eventType = $NetScript::Engine::DOMWalker::PI_EVENT; } ! elsif ( $this -> dal() -> isCommentNode( $node ) ) { $eventType = $NetScript::Engine::DOMWalker::COMMENT_EVENT; } ! elsif ( $this -> dal() -> isDocumentNode( $node ) ) { $eventType = $NetScript::Engine::DOMWalker::DOCUMENT_START_EVENT; } *************** *** 442,451 **** sub createEndEvent { my ( $this, $node ) = @_; - my $nodeType = $node -> getNodeType(); my $eventType; ! if ($nodeType == $XML::DOM2::Node::ELEMENT_NODE ) { $eventType = $NetScript::Engine::DOMWalker::ELEMENT_END_EVENT; } ! elsif ( $nodeType == $XML::DOM2::Node::DOCUMENT_NODE ) { $eventType = $NetScript::Engine::DOMWalker::DOCUMENT_END_EVENT; } --- 435,443 ---- sub createEndEvent { my ( $this, $node ) = @_; my $eventType; ! if ( $this -> dal() -> isElementNode( $node ) ) { $eventType = $NetScript::Engine::DOMWalker::ELEMENT_END_EVENT; } ! elsif ( $this -> dal() -> isDocumentNode( $node ) ) { $eventType = $NetScript::Engine::DOMWalker::DOCUMENT_END_EVENT; } *************** *** 477,480 **** --- 469,479 ---- } + #/** + # Returns the DOM abstraction layer the interpreter currently uses. + #*/ + sub dal { + my ( $this ) = @_; + $this -> { m_DAL }; + } 1; # make require happy |