annotate variant_effect_predictor/Bio/EnsEMBL/IdMapping/Serialisable.pm @ 3:d30fa12e4cc5 default tip

Merge heads 2:a5976b2dce6f and 1:09613ce8151e which were created as a result of a recently fixed bug.
author devteam <devteam@galaxyproject.org>
date Mon, 13 Jan 2014 10:38:30 -0500
parents 1f6dce3d34e0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1 =head1 LICENSE
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
2
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
3 Copyright (c) 1999-2012 The European Bioinformatics Institute and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
4 Genome Research Limited. All rights reserved.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
5
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
6 This software is distributed under a modified Apache license.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
7 For license details, please see
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
8
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
9 http://www.ensembl.org/info/about/code_licence.html
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
10
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
11 =head1 CONTACT
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
12
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
13 Please email comments or questions to the public Ensembl
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
14 developers list at <dev@ensembl.org>.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
15
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
16 Questions may also be sent to the Ensembl help desk at
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
17 <helpdesk@ensembl.org>.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
18
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
19 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
20
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
21 =head1 NAME
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
22
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
23 Bio::EnsEMBL::IdMapping::Serialisable - base class for serialisable objects
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25 =head1 SYNOPSIS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27 # instantiate an object which extends Serialisable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28 my $object = YourObject->new(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29 -DUMP_PATH => '/tmp',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30 -CACHE_FILE => 'object_cache.ser',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33 # serialise object to file
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34 my $filesize = $object->write_to_file;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 print LOG "Serialised object to file of size $filesize.\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37 # later, create another object defining the same serialisation
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38 # location. specifying -LOAD_AUTO will automatically load it from the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39 # serialisation file.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40 my $object1 = YourObject->new(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41 -DUMP_PATH => '/tmp',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42 -CACHE_FILE => 'object_cache.ser',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43 -LOAD_AUTO => 1,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46 # alternatively, manually load the object from file
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47 $object1->load_from_file;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49 =head1 DESCRIPTION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51 This is the base class for serialisable objects used by the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52 stable Id mapping. It's essentially an OO wrapper for Storable,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53 providing a method to store (write_to_file(()) and one to retrieve
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54 (read_from_file()) serialised objects.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56 This class is not instantiated itself, but rather extended by
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57 implementing classes.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59 =head1 METHODS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61 new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62 write_to_file
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63 read_from_file
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64 dump_path
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65 cache_file_name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66 cache_file
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67 loaded
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71 package Bio::EnsEMBL::IdMapping::Serialisable;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74 use warnings;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75 no warnings 'uninitialized';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77 use Bio::EnsEMBL::Utils::Argument qw(rearrange);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78 use Bio::EnsEMBL::Utils::Exception qw(throw warning);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79 use Bio::EnsEMBL::Utils::ScriptUtils qw(parse_bytes);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80 use Storable qw(nstore retrieve);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83 =head2 new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85 Arg [DUMP_PATH] : String - path for object serialisation
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86 Arg [CACHE_FILE] : String - filename of serialised object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87 Arg [AUTO_LOAD] : Boolean - determines whether object should be automatically
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88 loaded on instantiation
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89 Description : Constructor.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90 Return type : Bio::EnsEMBL::IdMapping::Serialisable implementing object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91 Exceptions : thrown on missing argument
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92 Caller : implementing subclass
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94 : under development
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98 sub new {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99 my $caller = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100 my $class = ref($caller) || $caller;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102 my ($dump_path, $cache_file, $auto_load) =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103 rearrange([qw(DUMP_PATH CACHE_FILE AUTO_LOAD)], @_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105 throw("You must provide a cache file name") unless ($cache_file);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107 my $self = {};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108 bless ($self, $class);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110 # initialise internal datastructure
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111 $self->{'dump_path'} = $dump_path || '.';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112 $self->{'cache_file_name'} = $cache_file;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114 # automatically load serialised object from file if requested
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115 if ($auto_load) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116 if (-s $self->cache_file) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117 $self->read_from_file;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118 $self->{'loaded'} = 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122 return $self;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126 =head2 write_to_file
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128 Example : my $filesize = $object->write_to_file;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129 Description : Serialises an object to a file (determined by
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130 $self->cache_file).
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131 Return type : String - size of serialisation file
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132 Exceptions : thrown on I/O errors
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135 : under development
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139 sub write_to_file {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
141
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
142 # create dump directory if it doesn't exist
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
143 if (my $dump_path = $self->dump_path) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
144 unless (-d $dump_path) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
145 system("mkdir -p $dump_path") == 0 or
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
146 throw("Unable to create directory $dump_path.\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
147 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
148 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
149
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
150 my $cache_file = $self->cache_file;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
151
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
152 eval { nstore($self->{'cache'}, $cache_file) };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
153 if ($@) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
154 throw("Unable to store $cache_file: $@\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
155 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
156
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
157 my $size = -s $cache_file;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
158 return parse_bytes($size);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
159 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
160
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
161
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
162 =head2 read_from_file
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
163
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
164 Example : $object->read_from_file;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
165 Description : Reads a serialised object from file (determined by
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
166 $self->cache_file).
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
167 Return type : Bio::EnsEMBL::IdMapping::Serialisable implementing object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
168 Exceptions : thrown on I/O errors
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
169 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
170 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
171 : under development
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
172
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
173 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
174
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
175 sub read_from_file {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
176 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
177
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
178 my $cache_file = $self->cache_file;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
179
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
180 unless (-s $cache_file) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
181 throw("No valid cache file found at $cache_file.");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
182 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
183
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
184 eval { $self->{'cache'} = retrieve($cache_file); };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
185 if ($@) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
186 throw("Unable to retrieve cache: $@");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
187 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
188
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
189 return $self;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
190 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
191
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
192
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
193 =head2 dump_path
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
194
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
195 Arg[1] : String - dump path for serialisation
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
196 Example : $object->dump_path('/tmp');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
197 Description : Getter/setter for the dump path for serialisation.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
198 Return type : String
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
199 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
200 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
201 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
202 : under development
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
203
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
204 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
205
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
206 sub dump_path {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
207 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
208 $self->{'dump_path'} = shift if (@_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
209 return $self->{'dump_path'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
210 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
211
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
212
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
213 =head2 cache_file_name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
214
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
215 Arg[1] : String - file name for serialisation
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
216 Example : $object->cache_file_name('object_cache.ser');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
217 Description : Getter/setter for the file name for serialisation.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
218 Return type : String
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
219 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
220 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
221 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
222 : under development
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
223
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
224 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
225
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
226 sub cache_file_name {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
227 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
228 $self->{'cache_file_name'} = shift if (@_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
229 return $self->{'cache_file_name'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
230 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
231
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
232
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
233 =head2 cache_file
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
234
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
235 Example : my $cache_file = $object->cache_file;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
236 Description : Returns the path and name of the serialised object file.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
237 Return type : String
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
238 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
239 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
240 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
241 : under development
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
242
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
243 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
244
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
245 sub cache_file {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
246 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
247 return $self->dump_path.'/'.$self->cache_file_name;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
248 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
249
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
250
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
251 =head2 loaded
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
252
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
253 Arg[1] : Boolean - "loaded" status
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
254 Example : if ($object->loaded) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
255 # do something with the object that was loaded from a file
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
256 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
257 # the object wasn't loaded but is new, so fill it
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
258 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
259 Description : Indicates whether a given object was loaded from its serialised
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
260 state on disk.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
261 Return type : Boolean - TRUE if loaded from disk, FALSE otherwise
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
262 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
263 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
264 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
265 : under development
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
266
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
267 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
268
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
269 sub loaded {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
270 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
271 $self->{'loaded'} = shift if (@_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
272 return $self->{'loaded'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
273 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
274
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
275
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
276 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
277