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