Version 1.12
[gitmo/Class-MOP.git] / lib / Class / MOP / Deprecated.pm
CommitLineData
30229767 1package Class::MOP::Deprecated;
2
3use strict;
4use warnings;
b409c969 5
bd2550f8 6our $VERSION = '1.12';
30229767 7$VERSION = eval $VERSION;
8our $AUTHORITY = 'cpan:STEVAN';
9
1b948345 10use Package::DeprecationManager -deprecations => {
11 'Class::MOP::HAVE_ISAREV' => '0.93',
12 'Class::MOP::subname' => '0.93',
13 'Class::MOP::in_global_destruction' => '0.93',
14
15 'Class::MOP::Package::get_method_map' => '0.93',
16
17 'Class::MOP::Class::construct_class_instance' => '0.93',
18 'Class::MOP::Class::check_metaclass_compatibility' => '0.93',
19 'Class::MOP::Class::create_meta_instance' => '0.93',
20 'Class::MOP::Class::clone_instance' => '0.93',
21 'Class::MOP::Class::alias_method' => '0.93',
22 'Class::MOP::Class::compute_all_applicable_methods' => '0.93',
23 'Class::MOP::Class::compute_all_applicable_attributes' => '0.93',
24 'Class::MOP::Class::get_attribute_map' => '0.95',
25
26 'Class::MOP::Instance::bless_instance_structure' => '0.93',
27
28 'Class::MOP::Attribute::process_accessors' => '0.93',
29
30 'Class::MOP::Method::Accessor::initialize_body' => '0.93',
31 'Class::MOP::Method::Accessor::generate_accessor_method' => '0.93',
32 'Class::MOP::Method::Accessor::generate_reader_method' => '0.93',
33 'Class::MOP::Method::Accessor::generate_writer_method' => '0.93',
34 'Class::MOP::Method::Accessor::generate_predicate_method' => '0.93',
35 'Class::MOP::Method::Accessor::generate_clearer_method' => '0.93',
36 'Class::MOP::Method::Accessor::generate_accessor_method_inline' => '0.93',
37 'Class::MOP::Method::Accessor::generate_reader_method_inline' => '0.93',
38 'Class::MOP::Method::Accessor::generate_writer_method_inline' => '0.93',
39 'Class::MOP::Method::Accessor::generate_clearer_method_inline' => '0.93',
40 'Class::MOP::Method::Accessor::generate_predicate_method_inline' =>
41 '0.93',
42
43 'Class::MOP::Method::Constructor::meta_instance' => '0.93',
44 'Class::MOP::Method::Constructor::attributes' => '0.93',
45 'Class::MOP::Method::Constructor::initialize_body' => '0.93',
46 'Class::MOP::Method::Constructor::generate_constructor_method' => '0.93',
30229767 47 'Class::MOP::Method::Constructor::generate_constructor_method_inline' =>
1b948345 48 '0.93',
49};
30229767 50
30229767 51
52package
53 Class::MOP;
54
55sub HAVE_ISAREV () {
1b948345 56 Class::MOP::Deprecated::deprecated(
30229767 57 "Class::MOP::HAVE_ISAREV is deprecated and will be removed in a future release. It has always returned 1 anyway."
58 );
59 return 1;
60}
61
62sub subname {
1b948345 63 Class::MOP::Deprecated::deprecated(
30229767 64 "Class::MOP::subname is deprecated. Please use Sub::Name directly.");
65 require Sub::Name;
66 goto \&Sub::Name::subname;
67}
68
69sub in_global_destruction {
1b948345 70 Class::MOP::Deprecated::deprecated(
30229767 71 "Class::MOP::in_global_destruction is deprecated. Please use Devel::GlobalDestruction directly."
72 );
73 require Devel::GlobalDestruction;
74 goto \&Devel::GlobalDestruction::in_global_destruction;
75}
76
77package
78 Class::MOP::Package;
79
1b948345 80use Scalar::Util qw( blessed );
81
b409c969 82sub get_method_map {
1b948345 83 Class::MOP::Deprecated::deprecated(
b409c969 84 'The get_method_map method has been made private.'
85 . " The public version is deprecated and will be removed in a future release.\n"
86 );
87 my $self = shift;
88
89 my $map = $self->_full_method_map;
90
91 $map->{$_} = $self->get_method($_)
92 for grep { !blessed( $map->{$_} ) } keys %{$map};
93
94 return $map;
95}
96
30229767 97package
98 Class::MOP::Module;
99
100package
101 Class::MOP::Class;
102
103sub construct_class_instance {
1b948345 104 Class::MOP::Deprecated::deprecated(
30229767 105 'The construct_class_instance method has been made private.'
106 . " The public version is deprecated and will be removed in a future release.\n"
107 );
108 shift->_construct_class_instance(@_);
109}
110
111sub check_metaclass_compatibility {
1b948345 112 Class::MOP::Deprecated::deprecated(
30229767 113 'The check_metaclass_compatibility method has been made private.'
114 . " The public version is deprecated and will be removed in a future release.\n"
115 );
116 shift->_check_metaclass_compatibility(@_);
117}
118
119sub construct_instance {
1b948345 120 Class::MOP::Deprecated::deprecated(
30229767 121 'The construct_instance method has been made private.'
122 . " The public version is deprecated and will be removed in a future release.\n"
123 );
124 shift->_construct_instance(@_);
125}
126
127sub create_meta_instance {
1b948345 128 Class::MOP::Deprecated::deprecated(
30229767 129 'The create_meta_instance method has been made private.'
130 . " The public version is deprecated and will be removed in a future release.\n"
131 );
132 shift->_create_meta_instance(@_);
133}
134
135sub clone_instance {
1b948345 136 Class::MOP::Deprecated::deprecated(
30229767 137 'The clone_instance method has been made private.'
138 . " The public version is deprecated and will be removed in a future release.\n"
139 );
140 shift->_clone_instance(@_);
141}
142
143sub alias_method {
1b948345 144 Class::MOP::Deprecated::deprecated(
30229767 145 "The alias_method method is deprecated. Use add_method instead.\n");
146
147 shift->add_method(@_);
148}
149
150sub compute_all_applicable_methods {
1b948345 151 Class::MOP::Deprecated::deprecated(
30229767 152 'The compute_all_applicable_methods method is deprecated.'
153 . " Use get_all_methods instead.\n" );
154
155 return map {
156 {
157 name => $_->name,
158 class => $_->package_name,
159 code => $_, # sigh, overloading
160 },
161 } shift->get_all_methods(@_);
162}
163
164sub compute_all_applicable_attributes {
1b948345 165 Class::MOP::Deprecated::deprecated(
30229767 166 'The compute_all_applicable_attributes method has been deprecated.'
167 . " Use get_all_attributes instead.\n" );
168
169 shift->get_all_attributes(@_);
170}
171
b1aaf0dc 172sub get_attribute_map {
1b948345 173 Class::MOP::Deprecated::deprecated(
b1aaf0dc 174 "The get_attribute_map method has been deprecated.\n");
175
176 shift->_attribute_map(@_);
177}
178
30229767 179package
180 Class::MOP::Instance;
181
182sub bless_instance_structure {
1b948345 183 Class::MOP::Deprecated::deprecated(
30229767 184 'The bless_instance_structure method is deprecated.'
185 . " It will be removed in a future release.\n" );
186
187 my ( $self, $instance_structure ) = @_;
188 bless $instance_structure, $self->_class_name;
189}
190
191package
192 Class::MOP::Attribute;
193
194sub process_accessors {
1b948345 195 Class::MOP::Deprecated::deprecated(
30229767 196 'The process_accessors method has been made private.'
197 . " The public version is deprecated and will be removed in a future release.\n"
198 );
199 shift->_process_accessors(@_);
200}
201
202package
203 Class::MOP::Method::Accessor;
204
205sub initialize_body {
1b948345 206 Class::MOP::Deprecated::deprecated(
30229767 207 'The initialize_body method has been made private.'
208 . " The public version is deprecated and will be removed in a future release.\n"
209 );
210 shift->_initialize_body;
211}
212
213sub generate_accessor_method {
1b948345 214 Class::MOP::Deprecated::deprecated(
30229767 215 'The generate_accessor_method method has been made private.'
216 . " The public version is deprecated and will be removed in a future release.\n"
217 );
218 shift->_generate_accessor_method;
219}
220
221sub generate_reader_method {
1b948345 222 Class::MOP::Deprecated::deprecated(
30229767 223 'The generate_reader_method method has been made private.'
224 . " The public version is deprecated and will be removed in a future release.\n"
225 );
226 shift->_generate_reader_method;
227}
228
229sub generate_writer_method {
1b948345 230 Class::MOP::Deprecated::deprecated(
30229767 231 'The generate_writer_method method has been made private.'
232 . " The public version is deprecated and will be removed in a future release.\n"
233 );
234 shift->_generate_writer_method;
235}
236
237sub generate_predicate_method {
1b948345 238 Class::MOP::Deprecated::deprecated(
30229767 239 'The generate_predicate_method method has been made private.'
240 . " The public version is deprecated and will be removed in a future release.\n"
241 );
242 shift->_generate_predicate_method;
243}
244
245sub generate_clearer_method {
1b948345 246 Class::MOP::Deprecated::deprecated(
30229767 247 'The generate_clearer_method method has been made private.'
248 . " The public version is deprecated and will be removed in a future release.\n"
249 );
250 shift->_generate_clearer_method;
251}
252
253sub generate_accessor_method_inline {
1b948345 254 Class::MOP::Deprecated::deprecated(
30229767 255 'The generate_accessor_method_inline method has been made private.'
256 . " The public version is deprecated and will be removed in a future release.\n"
257 );
258 shift->_generate_accessor_method_inline;
259}
260
261sub generate_reader_method_inline {
1b948345 262 Class::MOP::Deprecated::deprecated(
30229767 263 'The generate_reader_method_inline method has been made private.'
264 . " The public version is deprecated and will be removed in a future release.\n"
265 );
266 shift->_generate_reader_method_inline;
267}
268
269sub generate_writer_method_inline {
1b948345 270 Class::MOP::Deprecated::deprecated(
30229767 271 'The generate_writer_method_inline method has been made private.'
272 . " The public version is deprecated and will be removed in a future release.\n"
273 );
274 shift->_generate_writer_method_inline;
275}
276
277sub generate_predicate_method_inline {
1b948345 278 Class::MOP::Deprecated::deprecated(
30229767 279 'The generate_predicate_method_inline method has been made private.'
280 . " The public version is deprecated and will be removed in a future release.\n"
281 );
282 shift->_generate_predicate_method_inline;
283}
284
285sub generate_clearer_method_inline {
1b948345 286 Class::MOP::Deprecated::deprecated(
30229767 287 'The generate_clearer_method_inline method has been made private.'
288 . " The public version is deprecated and will be removed in a future release.\n"
289 );
290 shift->_generate_clearer_method_inline;
291}
292
293package
294 Class::MOP::Method::Constructor;
295
296sub meta_instance {
1b948345 297 Class::MOP::Deprecated::deprecated(
30229767 298 'The meta_instance method has been made private.'
299 . " The public version is deprecated and will be removed in a future release.\n"
300 );
301 shift->_meta_instance;
302}
303
304sub attributes {
1b948345 305 Class::MOP::Deprecated::deprecated(
30229767 306 'The attributes method has been made private.'
307 . " The public version is deprecated and will be removed in a future release.\n"
308 );
309
310 return shift->_attributes;
311}
312
313sub initialize_body {
1b948345 314 Class::MOP::Deprecated::deprecated(
30229767 315 'The initialize_body method has been made private.'
316 . " The public version is deprecated and will be removed in a future release.\n"
317 );
318 shift->_initialize_body;
319}
320
321sub generate_constructor_method {
1b948345 322 Class::MOP::Deprecated::deprecated(
30229767 323 'The generate_constructor_method method has been made private.'
324 . " The public version is deprecated and will be removed in a future release.\n"
325 );
326 shift->_generate_constructor_method;
327}
328
329sub generate_constructor_method_inline {
1b948345 330 Class::MOP::Deprecated::deprecated(
30229767 331 'The generate_constructor_method_inline method has been made private.'
332 . " The public version is deprecated and will be removed in a future release.\n"
333 );
334 shift->_generate_constructor_method_inline;
335}
336
3371;
338
339__END__
340
341=pod
342
343=head1 NAME
344
0fa37bfd 345Class::MOP::Deprecated - Manages deprecation warnings for Class::MOP
30229767 346
347=head1 DESCRIPTION
348
1b948345 349 use Class::MOP::Deprecated -api_version => $version;
30229767 350
351=head1 FUNCTIONS
352
0fa37bfd 353This module manages deprecation warnings for features that have been
354deprecated in Class::MOP.
30229767 355
1b948345 356If you specify C<< -api_version => $version >>, you can use deprecated features
b409c969 357without warnings. Note that this special treatment is limited to the package
358that loads C<Class::MOP::Deprecated>.
30229767 359
360=head1 AUTHORS
361
362Goro Fuji E<lt>gfuji@cpan.orgE<gt>
363
364=head1 COPYRIGHT AND LICENSE
365
3e2c8600 366Copyright 2006-2010 by Infinity Interactive, Inc.
30229767 367
368L<http://www.iinteractive.com>
369
370This library is free software; you can redistribute it and/or modify
371it under the same terms as Perl itself.
372
373=cut