Merge branch 'stable'
[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
38bcde3f 89 return { map { $_->name => $_ } $self->_get_local_methods };
b409c969 90}
91
30229767 92package
93 Class::MOP::Module;
94
95package
96 Class::MOP::Class;
97
98sub construct_class_instance {
1b948345 99 Class::MOP::Deprecated::deprecated(
30229767 100 'The construct_class_instance method has been made private.'
101 . " The public version is deprecated and will be removed in a future release.\n"
102 );
103 shift->_construct_class_instance(@_);
104}
105
106sub check_metaclass_compatibility {
1b948345 107 Class::MOP::Deprecated::deprecated(
30229767 108 'The check_metaclass_compatibility method has been made private.'
109 . " The public version is deprecated and will be removed in a future release.\n"
110 );
111 shift->_check_metaclass_compatibility(@_);
112}
113
114sub construct_instance {
1b948345 115 Class::MOP::Deprecated::deprecated(
30229767 116 'The construct_instance method has been made private.'
117 . " The public version is deprecated and will be removed in a future release.\n"
118 );
119 shift->_construct_instance(@_);
120}
121
122sub create_meta_instance {
1b948345 123 Class::MOP::Deprecated::deprecated(
30229767 124 'The create_meta_instance method has been made private.'
125 . " The public version is deprecated and will be removed in a future release.\n"
126 );
127 shift->_create_meta_instance(@_);
128}
129
130sub clone_instance {
1b948345 131 Class::MOP::Deprecated::deprecated(
30229767 132 'The clone_instance method has been made private.'
133 . " The public version is deprecated and will be removed in a future release.\n"
134 );
135 shift->_clone_instance(@_);
136}
137
138sub alias_method {
1b948345 139 Class::MOP::Deprecated::deprecated(
30229767 140 "The alias_method method is deprecated. Use add_method instead.\n");
141
142 shift->add_method(@_);
143}
144
145sub compute_all_applicable_methods {
1b948345 146 Class::MOP::Deprecated::deprecated(
30229767 147 'The compute_all_applicable_methods method is deprecated.'
148 . " Use get_all_methods instead.\n" );
149
150 return map {
151 {
152 name => $_->name,
153 class => $_->package_name,
154 code => $_, # sigh, overloading
155 },
156 } shift->get_all_methods(@_);
157}
158
159sub compute_all_applicable_attributes {
1b948345 160 Class::MOP::Deprecated::deprecated(
30229767 161 'The compute_all_applicable_attributes method has been deprecated.'
162 . " Use get_all_attributes instead.\n" );
163
164 shift->get_all_attributes(@_);
165}
166
b1aaf0dc 167sub get_attribute_map {
1b948345 168 Class::MOP::Deprecated::deprecated(
b1aaf0dc 169 "The get_attribute_map method has been deprecated.\n");
170
171 shift->_attribute_map(@_);
172}
173
30229767 174package
175 Class::MOP::Instance;
176
177sub bless_instance_structure {
1b948345 178 Class::MOP::Deprecated::deprecated(
30229767 179 'The bless_instance_structure method is deprecated.'
180 . " It will be removed in a future release.\n" );
181
182 my ( $self, $instance_structure ) = @_;
183 bless $instance_structure, $self->_class_name;
184}
185
186package
187 Class::MOP::Attribute;
188
189sub process_accessors {
1b948345 190 Class::MOP::Deprecated::deprecated(
30229767 191 'The process_accessors method has been made private.'
192 . " The public version is deprecated and will be removed in a future release.\n"
193 );
194 shift->_process_accessors(@_);
195}
196
197package
198 Class::MOP::Method::Accessor;
199
200sub initialize_body {
1b948345 201 Class::MOP::Deprecated::deprecated(
30229767 202 'The initialize_body method has been made private.'
203 . " The public version is deprecated and will be removed in a future release.\n"
204 );
205 shift->_initialize_body;
206}
207
208sub generate_accessor_method {
1b948345 209 Class::MOP::Deprecated::deprecated(
30229767 210 'The generate_accessor_method method has been made private.'
211 . " The public version is deprecated and will be removed in a future release.\n"
212 );
213 shift->_generate_accessor_method;
214}
215
216sub generate_reader_method {
1b948345 217 Class::MOP::Deprecated::deprecated(
30229767 218 'The generate_reader_method method has been made private.'
219 . " The public version is deprecated and will be removed in a future release.\n"
220 );
221 shift->_generate_reader_method;
222}
223
224sub generate_writer_method {
1b948345 225 Class::MOP::Deprecated::deprecated(
30229767 226 'The generate_writer_method method has been made private.'
227 . " The public version is deprecated and will be removed in a future release.\n"
228 );
229 shift->_generate_writer_method;
230}
231
232sub generate_predicate_method {
1b948345 233 Class::MOP::Deprecated::deprecated(
30229767 234 'The generate_predicate_method method has been made private.'
235 . " The public version is deprecated and will be removed in a future release.\n"
236 );
237 shift->_generate_predicate_method;
238}
239
240sub generate_clearer_method {
1b948345 241 Class::MOP::Deprecated::deprecated(
30229767 242 'The generate_clearer_method method has been made private.'
243 . " The public version is deprecated and will be removed in a future release.\n"
244 );
245 shift->_generate_clearer_method;
246}
247
248sub generate_accessor_method_inline {
1b948345 249 Class::MOP::Deprecated::deprecated(
30229767 250 'The generate_accessor_method_inline method has been made private.'
251 . " The public version is deprecated and will be removed in a future release.\n"
252 );
253 shift->_generate_accessor_method_inline;
254}
255
256sub generate_reader_method_inline {
1b948345 257 Class::MOP::Deprecated::deprecated(
30229767 258 'The generate_reader_method_inline method has been made private.'
259 . " The public version is deprecated and will be removed in a future release.\n"
260 );
261 shift->_generate_reader_method_inline;
262}
263
264sub generate_writer_method_inline {
1b948345 265 Class::MOP::Deprecated::deprecated(
30229767 266 'The generate_writer_method_inline method has been made private.'
267 . " The public version is deprecated and will be removed in a future release.\n"
268 );
269 shift->_generate_writer_method_inline;
270}
271
272sub generate_predicate_method_inline {
1b948345 273 Class::MOP::Deprecated::deprecated(
30229767 274 'The generate_predicate_method_inline method has been made private.'
275 . " The public version is deprecated and will be removed in a future release.\n"
276 );
277 shift->_generate_predicate_method_inline;
278}
279
280sub generate_clearer_method_inline {
1b948345 281 Class::MOP::Deprecated::deprecated(
30229767 282 'The generate_clearer_method_inline method has been made private.'
283 . " The public version is deprecated and will be removed in a future release.\n"
284 );
285 shift->_generate_clearer_method_inline;
286}
287
288package
289 Class::MOP::Method::Constructor;
290
291sub meta_instance {
1b948345 292 Class::MOP::Deprecated::deprecated(
30229767 293 'The meta_instance method has been made private.'
294 . " The public version is deprecated and will be removed in a future release.\n"
295 );
296 shift->_meta_instance;
297}
298
299sub attributes {
1b948345 300 Class::MOP::Deprecated::deprecated(
30229767 301 'The attributes method has been made private.'
302 . " The public version is deprecated and will be removed in a future release.\n"
303 );
304
305 return shift->_attributes;
306}
307
308sub initialize_body {
1b948345 309 Class::MOP::Deprecated::deprecated(
30229767 310 'The initialize_body method has been made private.'
311 . " The public version is deprecated and will be removed in a future release.\n"
312 );
313 shift->_initialize_body;
314}
315
316sub generate_constructor_method {
1b948345 317 Class::MOP::Deprecated::deprecated(
30229767 318 'The generate_constructor_method method has been made private.'
319 . " The public version is deprecated and will be removed in a future release.\n"
320 );
321 shift->_generate_constructor_method;
322}
323
324sub generate_constructor_method_inline {
1b948345 325 Class::MOP::Deprecated::deprecated(
30229767 326 'The generate_constructor_method_inline method has been made private.'
327 . " The public version is deprecated and will be removed in a future release.\n"
328 );
329 shift->_generate_constructor_method_inline;
330}
331
3321;
333
334__END__
335
336=pod
337
338=head1 NAME
339
0fa37bfd 340Class::MOP::Deprecated - Manages deprecation warnings for Class::MOP
30229767 341
342=head1 DESCRIPTION
343
1b948345 344 use Class::MOP::Deprecated -api_version => $version;
30229767 345
346=head1 FUNCTIONS
347
0fa37bfd 348This module manages deprecation warnings for features that have been
349deprecated in Class::MOP.
30229767 350
1b948345 351If you specify C<< -api_version => $version >>, you can use deprecated features
b409c969 352without warnings. Note that this special treatment is limited to the package
353that loads C<Class::MOP::Deprecated>.
30229767 354
355=head1 AUTHORS
356
357Goro Fuji E<lt>gfuji@cpan.orgE<gt>
358
359=head1 COPYRIGHT AND LICENSE
360
3e2c8600 361Copyright 2006-2010 by Infinity Interactive, Inc.
30229767 362
363L<http://www.iinteractive.com>
364
365This library is free software; you can redistribute it and/or modify
366it under the same terms as Perl itself.
367
368=cut