Ignore:
Timestamp:
2005-07-06T15:27:45+12:00 (19 years ago)
Author:
kjdon
Message:

Jeffrey's new parsing modifications, committed approx 6 July, 15.16

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gsdl/perllib/classify/HFileHierarchy.pm

    r9206 r10218  
    5151    'type' => "flag",
    5252    'reqd' => "no" },
    53       { 'name' => "sort",
    54     'desc' => "{Hierarchy.sort}",
    55     'type' => "string",
    56     'deft' => "{BasClas.metadata.deft}",
    57     'reqd' => "no" },
    5853      { 'name' => "hfile",
    5954    'desc' => "{Hierarchy.hfile}",
     
    6964    'desc' => "{Hierarchy.sort}",
    7065    'type' => "string",
    71     'deft' => "{BasClas.metadata.deft}",
     66#   'deft' => "{BasClas.metadata.deft}",
    7267    'reqd' => "no" },
    7368      { 'name' => "reverse_sort",
     
    8277my $options =
    8378{   'name'     => "HFileHierarchy",
    84     'desc'     => "{Hierarchy.desc}",
     79    'desc'     => "{HFileHierarchy.desc}",
    8580    'abstract' => "yes",
    8681    'inherits' => "yes",
     
    8984
    9085sub new {
    91     my $class = shift (@_);
    92     my $self = new BasClas($class, @_);
    93  
    94     my $option_list = $self->{'option_list'};
    95     push( @{$option_list}, $options );
    96  
    97     if ($self->{'info_only'}) {
    98     # created from classinfo.pl - don't need to parse the arguments
    99     return bless $self, $class;
    100     }
    101  
    102     my ($hfile, $metadata, $buttonname, $sortname, $reverse_sort, $title,
    103     $hlist_at_top);
    104     my $firstvalueonly = 0;
    105     my $allvalues = 0;
    106    
    107     if (!parsargv::parse(\@_,
    108              q^metadata/.*/^, \$metadata,
    109              q^buttonname/.*/^, \$buttonname,
    110              q^firstvalueonly^, \$firstvalueonly,
    111              q^allvalues^, \$allvalues,
    112              q^sort/.*/^, \$sortname,
    113              q^reverse_sort^, \$reverse_sort,
    114              q^hfile/.*/^, \$hfile,
    115              q^hlist_at_top^, \$hlist_at_top,
    116              "allow_extra_options")) {
    117    
    118     print STDERR "\nIncorrect options passed to $class, check your collect.cfg file\n";
    119     $self->print_txt_usage("");  # Use default resource bundle
    120     die "\n";
    121 
    122     }
    123 
     86    my ($class) = shift (@_);
     87    my ($classifierslist,$inputargs,$hashArgOptLists) = @_;
     88    push(@$classifierslist, $class);
     89
     90    if(defined $arguments){ push(@{$hashArgOptLists->{"ArgList"}},@{$arguments});}
     91    if(defined $options) { push(@{$hashArgOptLists->{"OptList"}},$options)};
     92
     93    my $self = (defined $hashArgOptLists)? new BasClas($classifierslist,$inputargs,$hashArgOptLists): new BasClas($classifierslist,$inputargs);
     94
     95    my $metadata = $self->{'metadata'};
    12496    if (!$metadata) {
    12597    print STDERR "$class Error: required option -metadata not supplied\n";
     
    129101    }
    130102   
    131     $buttonname = $self->generate_title_from_metadata($metadata) unless ($buttonname);
    132     $title = $buttonname;
    133     $self->{'title'} = $title;
    134 
    135     $self->{'metaname'} = $metadata;
     103    $self->{'buttonname'} = $self->generate_title_from_metadata($metadata) unless ($self->{'buttonname'});
     104
     105    #$self->{'metaname'} = $metadata;
    136106    my @meta_list = split(/,/, $metadata);
    137107    $self->{'meta_list'} = \@meta_list;
     108
     109    print STDERR "sort = $self->{'sort'}\n";
     110    # sort = undef in this case is the same as sort=nosort
     111    if ($self->{'sort'} eq "nosort") {
     112    $self->{'sort'} = undef;
     113    }
    138114
    139115    # sortname is handled a bit differently - kjdon
     
    142118    # we have a list of possible metadata.
    143119    # To get no sorting, set sortname = 'nosort'
    144     if (!$sortname) {
    145     if (defined ($metadata)) {
    146         $sortname = undef;
    147     } else {
    148         $sortname = "nosort";
    149     }
    150     }
    151     $self->{'sortname'} = $sortname;
    152 
    153     if (defined $sortname && $reverse_sort) {
    154     $self->{'reverse_sort'} = 1;
    155     }
     120    # we don't need to set it to undef if its not defined do we???
     121
     122#    if (!$self->{'sort'}) {
     123#   if (defined ($metadata)) {
     124#       $sortname = undef;
     125#   } else {
     126#       $sortname = "nosort";
     127#   }
     128#    }
     129 #   $self->{'sortname'} = $sortname;
     130
     131    #if (defined $self->{'sort'} && $reverse_sort) {
     132#   $self->{'reverse_sort'} = 1;
     133 #   }
    156134   
    157     if ($hfile) {
     135    if ($self->{'hfile'}) {
     136    my $hfile = $self->{'hfile'};
    158137    my $subjectfile;
    159138    $subjectfile = &util::filename_cat($ENV{'GSDLCOLLECTDIR'},"etc", $hfile);
     
    177156   
    178157
    179     $self->{'firstvalueonly'} = $firstvalueonly;
    180     $self->{'allvalues'} = $allvalues;
    181 
    182     $self->{'hlist_at_top'} = $hlist_at_top;
    183 
     158   # $self->{'firstvalueonly'} = $firstvalueonly;
     159   # $self->{'allvalues'} = $allvalues;
     160
     161    #$self->{'hlist_at_top'} = $hlist_at_top;
     162
     163    # Clean out the unused keys
     164    delete $self->{'metadata'};
     165    delete $self->{'hfile'};
    184166   
    185167    return bless $self, $class;
     
    240222    my $tempinfo = $self->get_OID_entry ($OID, $classifyinfo, $list->{$OID}->{'title'}, "VList");
    241223   
    242     if (defined $self->{'sortname'}) {
     224    if (defined $self->{'sort'}) {
    243225        if ($self->{'reverse_sort'}) {
    244226        foreach $subOID (sort {$b->[1] cmp $a->[1];} @{$list->{$OID}->{'contents'}}) {
Note: See TracChangeset for help on using the changeset viewer.