Changeset 14173 for gsdl/trunk/perllib/classify/GenericList.pm
- Timestamp:
- 2007-06-12T09:06:35+12:00 (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
gsdl/trunk/perllib/classify/GenericList.pm
r14084 r14173 253 253 # This means that length() and substr() work properly 254 254 # We need to be careful to convert classifier node title values back to UTF-8, however 255 my $metadata_value_unicode_string = &convert_utf8_string_to_unicode_string($metadata_value);255 my $metadata_value_unicode_string = $self->convert_utf8_string_to_unicode_string($metadata_value); 256 256 257 257 # Add the metadata value into the list for this combination of metadata group and section … … 286 286 287 287 # Recursively create the classification hierarchy, one level for each metadata group 288 &add_level($self,\@metadata_groups, \@OIDs, \%classifier_node);288 $self->add_level(\@metadata_groups, \@OIDs, \%classifier_node); 289 289 return \%classifier_node; 290 290 } … … 325 325 if ($partition_type_within_level =~ /^per_letter$/i) { 326 326 # Generate one hlist for each letter 327 my @sortedmetavalues = &sort_metadata_values_array($self,keys(%metavaluetoOIDhash));327 my @sortedmetavalues = $self->sort_metadata_values_array(keys(%metavaluetoOIDhash)); 328 328 my %metavaluetoOIDsubhash = (); 329 329 … … 334 334 # Is this the start of a new partition? 335 335 if ($metavaluepartition ne $lastpartition) { 336 &add_hlist_partition($self,\@metadata_groups, $classifier_node, $lastpartition, \%metavaluetoOIDsubhash);336 $self->add_hlist_partition(\@metadata_groups, $classifier_node, $lastpartition, \%metavaluetoOIDsubhash); 337 337 %metavaluetoOIDsubhash = (); 338 338 $lastpartition = $metavaluepartition; … … 343 343 344 344 # Don't forget to add the last partition 345 &add_hlist_partition($self,\@metadata_groups, $classifier_node, $lastpartition, \%metavaluetoOIDsubhash);345 $self->add_hlist_partition(\@metadata_groups, $classifier_node, $lastpartition, \%metavaluetoOIDsubhash); 346 346 347 347 # The partitions are stored in an HList … … 353 353 my $partition_size_within_level = $self->{$metadata_group . ".partition_size_within_level"}; 354 354 if ($partition_type_within_level =~ /^constant_size$/i && scalar(keys %metavaluetoOIDhash) > $partition_size_within_level) { 355 my @sortedmetavalues = &sort_metadata_values_array($self,keys(%metavaluetoOIDhash));355 my @sortedmetavalues = $self->sort_metadata_values_array(keys(%metavaluetoOIDhash)); 356 356 my $itemsdone = 0; 357 357 my %metavaluetoOIDsubhash = (); … … 365 365 # Is this the start of a new partition? 366 366 if ($itemsinpartition == 1) { 367 $partitionstart = &generate_partition_start($metavalue, $lastpartitionend, $self->{"partition_name_length"});367 $partitionstart = $self->generate_partition_start($metavalue, $lastpartitionend, $self->{"partition_name_length"}); 368 368 } 369 369 370 370 # Is this the end of the partition? 371 371 if ($itemsinpartition == $partition_size_within_level || $itemsdone == @sortedmetavalues) { 372 my $partitionend = &generate_partition_end($metavalue, $partitionstart, $self->{"partition_name_length"});372 my $partitionend = $self->generate_partition_end($metavalue, $partitionstart, $self->{"partition_name_length"}); 373 373 my $partitionname = $partitionstart; 374 374 if ($partitionend ne $partitionstart) { … … 376 376 } 377 377 378 &add_hlist_partition($self,\@metadata_groups, $classifier_node, $partitionname, \%metavaluetoOIDsubhash);378 $self->add_hlist_partition(\@metadata_groups, $classifier_node, $partitionname, \%metavaluetoOIDsubhash); 379 379 %metavaluetoOIDsubhash = (); 380 380 $lastpartitionend = $partitionend; … … 388 388 # Otherwise just add all the values to a VList 389 389 else { 390 &add_vlist($self,\@metadata_groups, $classifier_node, \%metavaluetoOIDhash);390 $self->add_vlist(\@metadata_groups, $classifier_node, \%metavaluetoOIDhash); 391 391 } 392 392 } … … 396 396 sub convert_utf8_string_to_unicode_string 397 397 { 398 my $self = shift(@_); 398 399 my $utf8_string = shift(@_); 399 400 … … 408 409 sub convert_unicode_string_to_utf8_string 409 410 { 411 my $self = shift(@_); 410 412 my $unicode_string = shift(@_); 411 413 … … 420 422 sub generate_partition_start 421 423 { 424 my $self = shift(@_); 422 425 my $metavalue = shift(@_); 423 426 my $lastpartitionend = shift(@_); … … 443 446 sub generate_partition_end 444 447 { 448 my $self = shift(@_); 445 449 my $metavalue = shift(@_); 446 450 my $partitionstart = shift(@_); … … 476 480 477 481 # Create an hlist partition 478 my %child_classifier_node = ( 'Title' => &convert_unicode_string_to_utf8_string($partitionname),482 my %child_classifier_node = ( 'Title' => $self->convert_unicode_string_to_utf8_string($partitionname), 479 483 'childtype' => "VList", 480 484 'contains' => [] ); 481 485 482 486 # Add the children to the hlist partition 483 &add_vlist($self,\@metadata_groups, \%child_classifier_node, \%metavaluetoOIDhash);487 $self->add_vlist(\@metadata_groups, \%child_classifier_node, \%metavaluetoOIDhash); 484 488 push(@{$classifier_node->{'contains'}}, \%child_classifier_node); 485 489 } … … 497 501 498 502 # Create an entry in the vlist for each value 499 foreach my $metavalue ( &sort_metadata_values_array($self,keys(%metavaluetoOIDhash))) {503 foreach my $metavalue ($self->sort_metadata_values_array(keys(%metavaluetoOIDhash))) { 500 504 my @OIDs = @{$metavaluetoOIDhash{$metavalue}}; 501 505 … … 519 523 # Otherwise create a sublist (bookshelf) for the metadata value 520 524 else { 521 my %child_classifier_node = ( 'Title' => &convert_unicode_string_to_utf8_string($metavalue),525 my %child_classifier_node = ( 'Title' => $self->convert_unicode_string_to_utf8_string($metavalue), 522 526 'childtype' => "VList", 523 527 'contains' => [] ); … … 527 531 my $next_metadata_group = $metadata_groups[0]; 528 532 $child_classifier_node{'childtype'} = $self->{$next_metadata_group . ".list_type"}; 529 &add_level($self,\@metadata_groups, \@OIDs, \%child_classifier_node);533 $self->add_level(\@metadata_groups, \@OIDs, \%child_classifier_node); 530 534 } 531 535 # Otherwise just add the documents as children of this list
Note:
See TracChangeset
for help on using the changeset viewer.