annotate variant_effect_predictor/Bio/EnsEMBL/DataFile.pm @ 0:2bc9b66ada89 draft default tip

Uploaded
author mahtabm
date Thu, 11 Apr 2013 06:29:17 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1 package Bio::EnsEMBL::DataFile;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
2
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
3 use strict;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
4 use warnings;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
5
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
6 use base qw/Bio::EnsEMBL::Storable/;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
7
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
8 use Bio::EnsEMBL::ApiVersion;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
9 use Bio::EnsEMBL::Utils::Argument qw/rearrange/;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
10 use Bio::EnsEMBL::Utils::Exception qw/throw warning/;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
11 use Bio::EnsEMBL::Utils::Scalar qw/:assert/;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
12 use Bio::EnsEMBL::Utils::URI qw/is_uri/;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
13 use File::Spec;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
14 use Scalar::Util qw(weaken isweak);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
15
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
16 =head2 new
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
17
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
18 Arg [-ADAPTOR] : Bio::EnsEMBL::DBSQL::DataFileAdaptor
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
19 Arg [-DBID] : Integer $dbID
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
20 Arg [-COORD_SYSTEM] : Bio::EnsEMBL::CoordSystem $coord_system
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
21 Arg [-ANALYSIS] : Bio::EnsEMBL::Analysis $analysis
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
22 Arg [-NAME] : String $name
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
23 Arg [-VERSION_LOCK] : Boolean $version_lock
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
24 Arg [-ABSOLUTE] : Boolean $absolute
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
25 Arg [-URL] : String $url
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
26 Arg [-FILE_TYPE] : String $file_type
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
27 Example : Bio::EnsEMBL::DataFile->new();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
28 Description : Returns a new instance of this object
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
29 Returntype : Bio::EnsEMBL::DataFile
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
30 Exceptions : Thrown if data is not as expected
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
31
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
32 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
33
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
34 sub new {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
35 my ($class, @args) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
36 my $self = $class->SUPER::new(@args);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
37 my ($coord_system, $analysis, $name, $version_lock, $absolute, $url, $file_type) =
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
38 rearrange([qw/coord_system analysis name version_lock absolute url file_type/], @args);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
39
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
40 $self->coord_system($coord_system);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
41 $self->analysis($analysis);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
42 $self->name($name);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
43 $self->version_lock($version_lock);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
44 $self->absolute($absolute);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
45 $self->url($url);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
46 $self->file_type($file_type);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
47
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
48 return $self;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
49 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
50
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
51 =head2 new_fast
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
52
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
53 Arg [1] : hashref to be blessed
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
54 Description: Construct a new Bio::EnsEMBL::Feature using the hashref.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
55 Exceptions : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
56 Returntype : Bio::EnsEMBL::Feature
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
57 Caller : general, subclass constructors
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
58 Status : Stable
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
59
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
60 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
61
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
62 sub new_fast {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
63 my $class = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
64 my $hashref = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
65 my $self = bless $hashref, $class;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
66 weaken($self->{adaptor}) if ( ! isweak($self->{adaptor}) );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
67 return $self;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
68 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
69
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
70 =head2 get_ExternalAdaptor
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
71
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
72 Arg[1] : Scalar; optional base path. Uses defaults if not given
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
73 Example : my $ea = $df->get_ExternalAdaptor('/base/path');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
74 Description : Delegates to the parent adaptor to retrieve the external
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
75 adaptor for this data type
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
76 Returntype : Adaptor; will be an adaptor that can read the given data file
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
77 Exceptions : Thrown if there is no attached adaptor.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
78
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
79 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
80
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
81 sub get_ExternalAdaptor {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
82 my ($self, $base_path) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
83 my $adaptor = $self->adaptor();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
84 throw "No DataFileAdaptor found in this object. Cannot request ExternalAdaptor" if ! $adaptor;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
85 return $adaptor->DataFile_to_adaptor($self, $base_path);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
86 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
87
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
88 =head2 path
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
89
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
90 Arg[1] : Scalar base of the path to use. Can be ignored if the instance
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
91 already represents a canonical path
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
92 Example : my $f = $df->path();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
93 Description : Used to generate the path to the file resource. Can return a
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
94 path to the file or a URL but it is up to the using code to
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
95 know how to interprate the different returned forms.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
96
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
97 If the data file url is canonical then this is just returned.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
98 If not then a path is generated of the form
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
99 B</base/path/production_name/coord_system_version/[software_version]/db_group/name.ext>
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
100
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
101 Returntype : Scalar the absolute path/url to the given resource
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
102 Exceptions : Thrown if the linked Coordinate System lacks a version and the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
103 current database also lacks a default version
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
104 Caller : public
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
105
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
106 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
107
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
108
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
109 sub path {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
110 my ($self, $base) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
111 my $all_paths = $self->get_all_paths($base);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
112 return $all_paths->[0];
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
113 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
114
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
115 sub get_all_paths {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
116 my ($self, $base) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
117
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
118 return [$self->url()] if $self->absolute();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
119
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
120 my @all_paths;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
121
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
122 $base = $self->adaptor()->get_base_path($base) if ! $base;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
123
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
124 my $production_name = $self->adaptor()->db()->get_MetaContainer()->get_production_name();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
125 my $cs_version = $self->coord_system()->version();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
126 if(! $cs_version) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
127 my ($highest_cs) = @{$self->adaptor()->db()->get_CoordSystemAdaptor()->fetch_all()};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
128 $cs_version = $highest_cs->version();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
129 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
130 if(!$cs_version) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
131 my $name = $self->name();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
132 throw "The file '${name}' in species '${$production_name} is attached to a CoordinateSystem lacking a version and has no default assembly. Please fix";
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
133 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
134
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
135 my @portions;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
136 push(@portions, $production_name);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
137 push(@portions, $cs_version);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
138 push(@portions, software_version()) if $self->version_lock();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
139 push(@portions, $self->adaptor()->db()->group());
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
140
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
141 #Targets are the files to generate
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
142 my @targets;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
143 #If URL is populated we assume we need to add this onto the end but removing the /
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
144 if($self->url()) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
145 my @split = split(/\//, $self->url());
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
146 push(@targets, [@split]);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
147 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
148 else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
149 my $extensions = $self->adaptor()->DataFile_to_extensions($self);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
150 foreach my $ext (@{$extensions}) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
151 my $filename = sprintf(q{%s.%s}, $self->name(), $ext);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
152 push(@targets, [$filename]);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
153 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
154 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
155
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
156 my $is_uri = is_uri($base);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
157 foreach my $t (@targets) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
158 my $path;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
159 if($is_uri) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
160 $path = join(q{/}, $base, @portions, @{$t});
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
161 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
162 else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
163 $path = File::Spec->catfile($base, @portions, @{$t});
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
164 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
165 push(@all_paths, $path);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
166 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
167 return \@all_paths;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
168 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
169
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
170 =head2 coord_system
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
171
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
172 Arg[1] : Bio::EnsEMBL::CoordSystem Optional setter
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
173 Description : Mutator for the coord system field. All files are linked to one
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
174 Returntype : Bio::EnsEMBL::CoordSystem
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
175 Exceptions : Thrown if not of the expected type
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
176
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
177 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
178
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
179
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
180 sub coord_system {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
181 my ($self, $coord_system) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
182 if(defined $coord_system) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
183 assert_ref($coord_system, 'Bio::EnsEMBL::CoordSystem', 'coord_system');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
184 $self->{'coord_system'} = $coord_system;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
185 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
186 return $self->{'coord_system'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
187 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
188
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
189 =head2 analysis
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
190
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
191 Arg[1] : Bio::EnsEMBL::Analysis Optional setter
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
192 Description : Mutator for the analysis field. All files are linked to one
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
193 Returntype : Bio::EnsEMBL::Analysis
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
194 Exceptions : Thrown if not of the expected type
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
195
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
196 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
197
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
198 sub analysis {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
199 my ($self, $analysis) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
200 if(defined $analysis) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
201 assert_ref($analysis, 'Bio::EnsEMBL::Analysis', 'analysis');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
202 $self->{'analysis'} = $analysis;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
203 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
204 return $self->{'analysis'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
205 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
206
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
207 =head2 name
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
208
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
209 Arg[1] : String Optional setter
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
210 Description : Mutator for the name of the file. Can be used in file location
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
211 generation
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
212 Returntype : String
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
213
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
214 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
215
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
216 sub name {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
217 my ($self, $name) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
218 if(defined $name) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
219 $self->{'name'} = $name;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
220 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
221 return $self->{'name'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
222 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
223
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
224 =head2 version_lock
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
225
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
226 Arg[1] : Boolean Optional setter
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
227 Description : Boolean indicating if the file is linked to the version of the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
228 database it was found in.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
229 Returntype : Boolean
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
230
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
231 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
232
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
233 sub version_lock {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
234 my ($self, $version_lock) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
235 if(defined $version_lock) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
236 assert_boolean($version_lock, 'version_lock');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
237 $self->{'version_lock'} = $version_lock;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
238 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
239 return $self->{'version_lock'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
240 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
241
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
242 =head2 absolute
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
243
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
244 Arg[1] : Boolean Optional setter
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
245 Description : Indicates if the URL of this file is an absolute one i.e.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
246 should be used verbatim or not.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
247 Returntype : Boolean
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
248
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
249 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
250
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
251 sub absolute {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
252 my ($self, $absolute) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
253 if(defined $absolute) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
254 assert_boolean($absolute, 'absolute');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
255 $self->{'absolute'} = $absolute;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
256 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
257 return $self->{'absolute'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
258 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
259
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
260 =head2 url
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
261
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
262 Arg[1] : String Optional setter
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
263 Description : Location of the file. Can be optional and if set means once
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
264 we are in an automatic location use this value to locate
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
265 the file.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
266 Returntype : String
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
267
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
268 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
269
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
270 sub url {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
271 my ($self, $url) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
272 $self->{'url'} = $url if defined $url;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
273 return $self->{'url'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
274 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
275
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
276 =head2 file_type
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
277
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
278 Arg[1] : String Optional setter
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
279 Description : The type of file we are working with. Can be used to generate
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
280 a file name.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
281 Returntype : String
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
282
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
283 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
284
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
285 sub file_type {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
286 my ($self, $file_type) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
287 $self->{'file_type'} = $file_type if defined $file_type;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
288 return $self->{'file_type'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
289 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
290
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
291 #=head2 files
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
292 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
293 # Args :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
294 # Example : my $files = @{$df->files()};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
295 # Description : Returns all the file names we expect to cover for a flat file
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
296 # Returntype : type return_description
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
297 # Exceptions :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
298 # Caller : caller
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
299 # Status : status
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
300 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
301 #=cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
302 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
303 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
304 #sub files {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
305 # my ($self) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
306 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
307 #}
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
308
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
309 1;