1 package OpenILS::Application::Cat::Utils;
2 use strict; use warnings;
3 use OpenILS::Application::AppUtils;
4 use OpenILS::Utils::Fieldmapper;
7 use OpenSRF::Utils::SettingsParser;
8 use OpenILS::Utils::FlatXML;
9 use OpenILS::Utils::ModsParser;
11 my $mods_utils = OpenILS::Utils::ModsParser->new();
15 # -----------------------------------------------------------------------
16 # XXX This code is all deprecated. Remove any traces and delete
17 # -----------------------------------------------------------------------
23 $class = ref($class) || $class;
24 return bless( {}, $class );
28 # ---------------------------------------------------------------------------
29 # Converts an XML nodeset into a tree
30 # This method expects a blessed Fieldmapper::biblio::record_node object
32 my($class, $nodeset) = @_;
34 for my $child (@$nodeset) {
35 next unless ($child and defined($child->parent_node));
36 my $parent = $nodeset->[$child->parent_node];
38 warn "No Parent For " . $child->intra_doc_id() . "\n";
40 $parent->children([]) unless defined($parent->children);
43 push( @{$parent->children}, $child );
50 # ---------------------------------------------------------------------------
51 # Converts a tree into an xml nodeset
52 # This method expects a blessed Fieldmapper::biblio::record_node object
56 my($self, $node, $newnodes) = @_;
57 return $newnodes unless $node;
59 if(!$newnodes) { $newnodes = []; }
60 push( @$newnodes, $node );
62 if( $node->children() ) {
64 for my $child (@{ $node->children() }) {
66 new Fieldmapper::biblio::record_node ($child);
67 if(!defined($child->parent_node)) {
68 $child->parent_node($node->intra_doc_id);
69 $child->ischanged(1); #just to be sure
71 $self->tree2nodeset( $child, $newnodes );
75 $node->children([]); #we don't need them hanging around
80 # Removes any deleted nodes from the tree
83 my($self, $nodeset) = @_;
85 for my $node (@$nodeset) {
86 if(!$node->isdeleted() ) {
87 push @newnodes, $node;