annotate variant_effect_predictor/Bio/EnsEMBL/DataFile.pm @ 2:a5976b2dce6f

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