/usr/share/perl5/SWISS/KWs.pm is in libswiss-perl 1.67-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 | package SWISS::KWs;
use vars qw($AUTOLOAD @ISA @EXPORT_OK %fields);
use Exporter;
use Carp;
use strict;
use SWISS::TextFunc;
use SWISS::ListBase;
use SWISS::KW;
BEGIN {
@EXPORT_OK = qw();
@ISA = ( 'Exporter', 'SWISS::ListBase');
%fields = (
);
}
sub new {
my $ref = shift;
my $class = ref($ref) || $ref;
my $self = new SWISS::ListBase;
$self->rebless($class);
return $self;
}
sub fromText {
my $self = new(shift);
my $textRef = shift;
my $line;
my @tmp;
if ($$textRef =~ /($SWISS::TextFunc::linePattern{'KW'})/m){
foreach $line (split /\n/m, $1) {
$self->{indentation} += $line =~ s/^ //;
$line = SWISS::TextFunc->cleanLine($line);
@tmp = SWISS::TextFunc->listFromText($line, ';\s*', '\.\s*');
push (@{$self->list()}, map {SWISS::KW->fromText($_)} @tmp);
}
}
$self->{_dirty} = 0;
return $self;
}
sub toText {
my $self = shift;
my $textRef = shift;
my @lines;
my $newText = '';
if ($self->size > 0) {
$newText = join('; ', map {$_->toText()} @{$self->list}) . ".";
my $prefix = "KW ";
my $col = $SWISS::TextFunc::lineLength;
$col++, $prefix=" $prefix" if $self->{indentation};
$newText = SWISS::TextFunc->wrapOn($prefix, $prefix, $col,
$newText , ';\s+');
};
$self->{_dirty} = 0;
return SWISS::TextFunc->insertLineGroup($textRef, $newText,
$SWISS::TextFunc::linePattern{'KW'});
}
sub sort {
my $self = shift;
return $self->set(sort {lc($a->text) cmp lc($b->text)} @{$self->list});
}
1;
__END__
=head1 Name
SWISS::KWs
=head1 Description
B<SWISS::KWs> represents the KW lines within an SWISS-PROT + TrEMBL
entry as specified in the user manual
http://www.expasy.org/sprot/userman.html .
=head1 Inherits from
SWISS::ListBase.pm
=head1 Attributes
=over
=item C<list>
Each list element is a B<SWISS::KW> object.
=back
=head1 Methods
=head2 Standard methods
=over
=item new
=item fromText
=item sort
sort() sorts the keywords alphabetically.
=item toText
=back
|