annotate variant_effect_predictor/Bio/EnsEMBL/Storable.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::Storable
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 $dbID = $storable_object->dbID();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
28 my $adaptor = $storable_object->adaptor();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
29 if ( $storable_object->is_stored($db_adaptor) ) { ... }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
30
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
31 =head1 DESCRIPTION
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
32
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
33 This is a storable base class. All objects which are storable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
34 in the database should inherit from this class. It provides two
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
35 getter/setters: dbID() adaptor(). And a is_stored() method that can be
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
36 used to determine if an object is already stored in a database.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
37
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
38 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
39
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
40 use strict;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
41 use warnings;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
42
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
43 package Bio::EnsEMBL::Storable;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
44
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
45
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
46 use Bio::EnsEMBL::Utils::Exception qw(throw warning);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
47 use Bio::EnsEMBL::Utils::Argument qw(rearrange);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
48 use Bio::EnsEMBL::Utils::Scalar qw(assert_ref);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
49 use Scalar::Util qw(weaken);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
50
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
51 =head2 new
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
52
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
53 Arg [-ADAPTOR] : Bio::EnsEMBL::DBSQL::BaseAdaptor
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
54 Arg [-dbID] : database internal id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
55 Caller : internal calls
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
56 Description : create a new Storable object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
57 Returntype : Bio::EnsEMBL::Storable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
58 Exceptions : Adaptor not a Bio::EnsEMBL::DBSQL::BaseAdaptor
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
59 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
60
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
61 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
62
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
63 sub new {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
64 my $caller = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
65 my $class = ref($caller) || $caller;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
66
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
67 my ($adaptor, $dbID) = rearrange(['ADAPTOR', 'dbID'],@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
68
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
69 if($adaptor) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
70 if(!ref($adaptor) || !$adaptor->isa('Bio::EnsEMBL::DBSQL::BaseAdaptor')) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
71 throw('-ADAPTOR argument must be a Bio::EnsEMBL::DBSQL::BaseAdaptor');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
72 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
73 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
74
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
75 my $self = bless({'dbID' => $dbID}, $class);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
76 $self->adaptor($adaptor);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
77 return $self;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
78 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
79
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
80
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
81 =head2 dbID
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
82
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
83 Arg [1] : int $dbID
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
84 Description: getter/setter for the database internal id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
85 Returntype : int
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
86 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
87 Caller : general, set from adaptor on store
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
88 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
89
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
90 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
91
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
92 sub dbID {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
93 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
94 $self->{'dbID'} = shift if(@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
95 return $self->{'dbID'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
96 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
97
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
98
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
99
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
100 =head2 adaptor
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
101
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
102 Arg [1] : Bio::EnsEMBL::DBSQL::BaseAdaptor $adaptor
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
103 Description: get/set for this objects Adaptor
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
104 Returntype : Bio::EnsEMBL::DBSQL::BaseAdaptor
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
105 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
106 Caller : general, set from adaptor on store
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
107 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
108
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
109 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
110
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
111 sub adaptor {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
112 my ($self, $adaptor) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
113 if(scalar(@_) > 1) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
114 if(defined $adaptor) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
115 assert_ref($adaptor, 'Bio::EnsEMBL::DBSQL::BaseAdaptor', 'adaptor');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
116 $self->{adaptor} = $adaptor;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
117 weaken($self->{adaptor});
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
118 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
119 else {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
120 $self->{adaptor} = undef;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
121 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
122 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
123 return $self->{adaptor}
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
124 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
125
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
126
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
127
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
128 =head2 is_stored
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
129
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
130 Arg [1] : Bio::EnsEMBL::DBSQL::DBConnection
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
131 : or Bio::EnsEMBL::DBSQL::DBAdaptor
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
132 Example : do_something if($object->is_stored($db));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
133 Description: Returns true if this object is stored in the provided database.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
134 This works under the assumption that if the adaptor and dbID are
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
135 set and the database of the adaptor shares the port, dbname and
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
136 hostname with the provided database, this object is stored in
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
137 that database.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
138 Returntype : 1 or 0
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
139 Exceptions : throw if dbID is set but adaptor is not
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
140 throw if adaptor is set but dbID is not
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
141 throw if incorrect argument is passed
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
142 Caller : store methods
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
143 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
144
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
145 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
146
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
147 my $message_only_once =1;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
148
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
149 sub is_stored {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
150 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
151 my $db = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
152
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
153 if($db and $db->isa('Bio::EnsEMBL::DBSQL::DBAdaptor')) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
154 $db = $db->dbc();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
155 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
156 if(!$db || !ref($db) || !$db->isa('Bio::EnsEMBL::DBSQL::DBConnection')) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
157 throw('db argument must be a Bio::EnsEMBL::DBSQL::DBConnection');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
158 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
159
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
160 my $adaptor = $self->{'adaptor'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
161 my $dbID = $self->{'dbID'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
162
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
163 if($dbID && !$adaptor) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
164 if($message_only_once){
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
165 warning("Storable object has a dbID but not an adaptor.\n" .
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
166 'Storable objects must have neither OR both.');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
167 $message_only_once = 0;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
168 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
169 return 0;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
170 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
171
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
172 if($adaptor && !$dbID) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
173 if($message_only_once){
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
174 warning("Storable object has an adaptor but not a dbID.\n".
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
175 "Storable objects must have neither OR both.");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
176 $message_only_once = 0;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
177 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
178 return 0;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
179 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
180
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
181 return 0 if (!$adaptor && !$dbID);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
182
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
183 my $cur_db = $adaptor->dbc();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
184
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
185 #
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
186 # Databases are the same if they share the same port, host and username
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
187 #
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
188 if ( $db->port() eq $cur_db->port()
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
189 && $db->host() eq $cur_db->host()
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
190 && $db->dbname() eq $cur_db->dbname() )
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
191 {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
192 return 1;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
193 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
194
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
195 return 0;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
196 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
197
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
198 sub get_all_DAS_Features{
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
199 my ($self, $slice) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
200
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
201 $self->{_das_features} ||= {}; # Cache
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
202 $self->{_das_styles} ||= {}; # Cache
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
203 $self->{_das_segments} ||= {}; # Cache
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
204 my %das_features;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
205 my %das_styles;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
206 my %das_segments;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
207
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
208 foreach my $dasfact( @{$self->get_all_DASFactories} ){
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
209 my $dsn = $dasfact->adaptor->dsn;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
210 my $name = $dasfact->adaptor->name;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
211 my $url = $dasfact->adaptor->url;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
212
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
213 # Construct a cache key : SOURCE_URL/TYPE
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
214 # Need the type to handle sources that serve multiple types of features
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
215
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
216 my ($type) = ref($dasfact->adaptor->mapping) eq 'ARRAY' ? @{$dasfact->adaptor->mapping} : $dasfact->adaptor->mapping;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
217 $type ||=$dasfact->adaptor->type;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
218 my $key = join('/', $name, $type);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
219
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
220 if( $self->{_das_features}->{$key} ){ # Use cached
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
221 $das_features{$name} = $self->{_das_features}->{$key};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
222 $das_styles{$name} = $self->{_das_styles}->{$key};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
223 $das_segments{$name} = $self->{_das_segments}->{$key};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
224 } else { # Get fresh data
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
225
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
226 my ($featref, $styleref, $segref) = ($type =~ /^ensembl_location/) ? ($dasfact->fetch_all_Features( $slice, $type )) : $dasfact->fetch_all_by_ID( $self );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
227
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
228 $self->{_das_features}->{$key} = $featref;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
229 $self->{_das_styles}->{$key} = $styleref;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
230 $self->{_das_segments}->{$key} = $segref;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
231 $das_features{$name} = $featref;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
232 $das_styles{$name} = $styleref;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
233 $das_segments{$name} = $segref;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
234 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
235 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
236
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
237 return (\%das_features, \%das_styles, \%das_segments);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
238 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
239
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
240 1;