private void removeExistingOutputNodes ( AbstractJcrNode parentOfOutput , String outputNodeName , String selectedPath , String logMsg ) throws RepositoryException { // Determine if there is an existing output node ... if ( TRACE ) { LOGGER . trace ( "Looking under '{0}' for existing output to be removed for {1}" , parentOfOutput . getPath ( ) , logMsg ) ; } NodeIterator outputIter = parentOfOutput . getNodesInternal ( outputNodeName ) ; while ( outputIter . hasNext ( ) ) { Node outputNode = outputIter . nextNode ( ) ; // See if this is indeed the output, which should have the 'mode:derived' mixin ... if ( outputNode . isNodeType ( DERIVED_NODE_TYPE_NAME ) && outputNode . hasProperty ( DERIVED_FROM_PROPERTY_NAME ) ) { // See if it was an output for the same input node ... String derivedFrom = outputNode . getProperty ( DERIVED_FROM_PROPERTY_NAME ) . getString ( ) ; if ( selectedPath . equals ( derivedFrom ) ) { // Delete it ... if ( DEBUG ) { LOGGER . debug ( "Removing existing output node '{0}' for {1}" , outputNode . getPath ( ) , logMsg ) ; } outputNode . remove ( ) ; } } } }
Remove any existing nodes that were generated by previous sequencing operations of the node at the selected path .