annotate variant_effect_predictor/Bio/EnsEMBL/StableIdEvent.pm @ 1:d6778b5d8382 draft default tip

Deleted selected files
author willmclaren
date Fri, 03 Aug 2012 10:05:43 -0400
parents 21066c0abaf5
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
1 =head1 LICENSE
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
2
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
3 Copyright (c) 1999-2012 The European Bioinformatics Institute and
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
4 Genome Research Limited. All rights reserved.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
5
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
6 This software is distributed under a modified Apache license.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
7 For license details, please see
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
8
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
9 http://www.ensembl.org/info/about/code_licence.html
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
10
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
11 =head1 CONTACT
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
12
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
13 Please email comments or questions to the public Ensembl
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
14 developers list at <dev@ensembl.org>.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
15
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
16 Questions may also be sent to the Ensembl help desk at
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
17 <helpdesk@ensembl.org>.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
18
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
19 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
20
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
21 =head1 NAME
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
22
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
23 Bio::EnsEMBL::StableIdEvent- object representing a stable ID mapping event
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
24
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
25 =head1 SYNOPSIS
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
26
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
27 my $old_id = Bio::EnsEMBL::ArchiveStableId->new(
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
28 -stable_id => 'ENSG001',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
29 -version => 1,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
30 -type => 'Gene',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
31 );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
32
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
33 my $new_id = Bio::EnsEMBL::ArchiveStableId->new(
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
34 -stable_id => 'ENSG001',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
35 -version => 2,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
36 -type => 'Gene',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
37 );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
38
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
39 my $event = Bio::EnsEMBL::StableIdEvent->new(
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
40 -old_id => $old_id,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
41 -new_id => $new_id,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
42 -score => 0.997
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
43 );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
44
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
45 # directly access attributes in old and new ArchiveStableId
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
46 my $old_stable_id = $event->get_attribute( 'old', 'stable_id' );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
47
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
48 =head1 DESCRIPTION
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
49
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
50 This object represents a stable ID mapping event. Such an event links two
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
51 ArchiveStableIds with a mapping score.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
52
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
53 =head1 METHODS
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
54
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
55 new
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
56 old_ArchiveStableId
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
57 new_ArchiveStableId
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
58 score
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
59 get_attribute
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
60 ident_string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
61
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
62 =head1 RELATED MODULES
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
63
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
64 Bio::EnsEMBL::ArchiveStableId
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
65 Bio::EnsEMBL::DBSQL::ArchiveStableIdAdaptor
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
66 Bio::EnsEMBL::StableIdHistoryTree
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
67
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
68 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
69
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
70 package Bio::EnsEMBL::StableIdEvent;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
71
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
72 use strict;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
73 use warnings;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
74 no warnings 'uninitialized';
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
75
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
76 use Bio::EnsEMBL::Utils::Exception qw(throw warning);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
77 use Bio::EnsEMBL::Utils::Argument qw(rearrange);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
78
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
79
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
80 =head2 new
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
81
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
82 Arg[1] : Bio::EnsEMBL::ArchiveStableId $old_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
83 The old ArchiveStableId in the mapping event
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
84 Arg[2] : Bio::EnsEMBL::ArchiveStableId $new_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
85 The new ArchiveStableId in the mapping event
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
86 Arg[3] : (optional) float $score - score of this mapping event
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
87 Example : my $event = Bio::EnsEMBL::StableIdEvent->new(
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
88 $arch_id1, $arch_id2, 0.977);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
89 Description : object constructor
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
90 Return type : Bio::EnsEMBL::StableIdEvent
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
91 Exceptions : thrown on wrong argument types
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
92 Caller : Bio::EnsEMBL::DBSQL::ArchiveStableIdAdaptor::fetch_history_tree_by_stable_id, general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
93 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
94 : under development
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
95
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
96 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
97
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
98 sub new {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
99 my $caller = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
100 my $class = ref($caller) || $caller;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
101
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
102 my ($old_id, $new_id, $score) = rearrange([qw(OLD_ID NEW_ID SCORE)], @_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
103
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
104 throw("Need old or new Bio::EnsEMBL::ArchiveStableId to create StableIdEvent")
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
105 unless ($old_id || $new_id);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
106
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
107 my $self = {};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
108 bless $self, $class;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
109
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
110 # initialise object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
111 $self->old_ArchiveStableId($old_id);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
112 $self->new_ArchiveStableId($new_id);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
113 $self->score($score);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
114
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
115 return $self;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
116 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
117
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
118
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
119 =head2 old_ArchiveStableId
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
120
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
121 Arg[1] : (optional) Bio::EnsEMBL::ArchiveStableId $archive_id, or undef
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
122 The old ArchiveStableId to set for this mapping event
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
123 Example : # getter
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
124 my $archive_id = $event->old_ArchiveStableId;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
125
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
126 # setter
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
127 $event->old_ArchiveStableId($archive_id);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
128 Description : Getter/setter for old ArchiveStableId in this mapping event.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
129 Return type : Bio::EnsEMBL::ArchiveStableId
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
130 Exceptions : thrown on wrong argument type
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
131 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
132 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
133 : under development
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
134
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
135 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
136
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
137 sub old_ArchiveStableId {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
138 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
139
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
140 # setter
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
141 if (@_) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
142 my $archive_id = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
143
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
144 # if argument is defined, check type. undef is also legal as an argument.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
145 if (defined($archive_id)) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
146 throw("Need a Bio::EnsEMBL::ArchiveStableId.") unless
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
147 (ref($archive_id) && $archive_id->isa('Bio::EnsEMBL::ArchiveStableId'));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
148 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
149
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
150 $self->{'old_id'} = $archive_id;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
151 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
152
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
153 # getter
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
154 return $self->{'old_id'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
155 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
156
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
157
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
158 =head2 new_ArchiveStableId
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
159
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
160 Arg[1] : (optional) Bio::EnsEMBL::ArchiveStableId $archive_id, or undef
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
161 The new ArchiveStableId to set for this mapping event
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
162 Example : # getter
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
163 my $archive_id = $event->new_ArchiveStableId;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
164
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
165 # setter
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
166 $event->new_ArchiveStableId($archive_id);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
167 Description : Getter/setter for new ArchiveStableId in this mapping event.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
168 Return type : Bio::EnsEMBL::ArchiveStableId
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
169 Exceptions : thrown on wrong argument type
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
170 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
171 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
172 : under development
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
173
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
174 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
175
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
176 sub new_ArchiveStableId {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
177 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
178
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
179 # setter
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
180 if (@_) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
181 my $archive_id = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
182
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
183 # if argument is defined, check type. undef is also legal as an argument.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
184 if (defined($archive_id)) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
185 throw("Need a Bio::EnsEMBL::ArchiveStableId.") unless
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
186 (ref($archive_id) && $archive_id->isa('Bio::EnsEMBL::ArchiveStableId'));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
187 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
188
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
189 $self->{'new_id'} = $archive_id;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
190 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
191
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
192 # getter
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
193 return $self->{'new_id'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
194 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
195
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
196
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
197 =head2 score
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
198
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
199 Arg[1] : (optional) float $score - the score to set
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
200 Example : my $score = $event->score;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
201 Description : Getter/setter for mapping event score.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
202 Return type : float or undef
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
203 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
204 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
205 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
206 : under development
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
207
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
208 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
209
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
210 sub score {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
211 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
212 $self->{'score'} = shift if (@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
213 return $self->{'score'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
214 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
215
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
216
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
217 =head2 get_attribute
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
218
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
219 Arg[1] : String $type - determines whether to get attribute from 'old'
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
220 or 'new' ArchiveStableId
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
221 Arg[2] : String $attr - ArchiveStableId attribute to fetch
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
222 Example : my $old_stable_id = $event->get_attribute('old', 'stable_id');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
223 Description : Accessor to attributes of the ArchiveStableIds attached to this
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
224 event. Convenience method that does the check for undef old
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
225 and/or new ArchiveStableId for you.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
226 Return type : same as respective method in Bio::EnsEMBL::ArchiveStableId, or
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
227 undef
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
228 Exceptions : thrown on wrong arguments
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
229 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
230 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
231 : under development
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
232
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
233 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
234
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
235 sub get_attribute {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
236 my ($self, $type, $attr) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
237
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
238 throw("First argument passed to this function has to be 'old' or 'new'.")
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
239 unless ($type eq 'old' or $type eq 'new');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
240
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
241 my %allowed_attribs = map { $_ => 1 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
242 qw(stable_id version db_name release assembly);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
243
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
244 throw("Attribute $attr not allowed.") unless $allowed_attribs{$attr};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
245
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
246 my $call = $type.'_ArchiveStableId';
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
247
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
248 if (my $id = $self->$call) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
249 return $id->$attr;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
250 } else {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
251 return undef;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
252 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
253 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
254
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
255
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
256 =head2 ident_string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
257
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
258 Example : print $event->ident_string, "\n";
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
259 Description : Returns a string that can be used to identify your StableIdEvent.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
260 Useful in debug warnings.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
261 Return type : String
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
262 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
263 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
264 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
265 : under development
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
266
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
267 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
268
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
269 sub ident_string {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
270 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
271
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
272 my $old_id = $self->old_ArchiveStableId;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
273 my $new_id = $self->new_ArchiveStableId;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
274
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
275 my $str;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
276
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
277 if ($old_id) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
278 $str = $old_id->stable_id.'.'.$old_id->version.' ('.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
279 $old_id->release.')';
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
280 } else {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
281 $str = 'null';
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
282 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
283
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
284 $str .= ' -> ';
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
285
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
286 if ($new_id) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
287 $str .= $new_id->stable_id.'.'.$new_id->version.' ('.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
288 $new_id->release.')';
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
289 } else {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
290 $str .= 'null';
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
291 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
292
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
293 $str .= ' ['.$self->score.']';
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
294
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
295 return $str;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
296 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
297
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
298
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
299 1;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
300