1 package Class::MOP::Deprecated;
7 $VERSION = eval $VERSION;
8 our $AUTHORITY = 'cpan:STEVAN';
10 use Package::DeprecationManager -deprecations => {
11 'Class::MOP::HAVE_ISAREV' => '0.93',
12 'Class::MOP::subname' => '0.93',
13 'Class::MOP::in_global_destruction' => '0.93',
15 'Class::MOP::Package::get_method_map' => '0.93',
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',
26 'Class::MOP::Instance::bless_instance_structure' => '0.93',
28 'Class::MOP::Attribute::process_accessors' => '0.93',
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' =>
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',
47 'Class::MOP::Method::Constructor::generate_constructor_method_inline' =>
56 Class::MOP::Deprecated::deprecated(
57 "Class::MOP::HAVE_ISAREV is deprecated and will be removed in a future release. It has always returned 1 anyway."
63 Class::MOP::Deprecated::deprecated(
64 "Class::MOP::subname is deprecated. Please use Sub::Name directly.");
66 goto \&Sub::Name::subname;
69 sub in_global_destruction {
70 Class::MOP::Deprecated::deprecated(
71 "Class::MOP::in_global_destruction is deprecated. Please use Devel::GlobalDestruction directly."
73 require Devel::GlobalDestruction;
74 goto \&Devel::GlobalDestruction::in_global_destruction;
80 use Scalar::Util qw( blessed );
83 Class::MOP::Deprecated::deprecated(
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"
89 return { map { $_->name => $_ } $self->_get_local_methods };
98 sub construct_class_instance {
99 Class::MOP::Deprecated::deprecated(
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"
103 shift->_construct_class_instance(@_);
106 sub check_metaclass_compatibility {
107 Class::MOP::Deprecated::deprecated(
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"
111 shift->_check_metaclass_compatibility(@_);
114 sub construct_instance {
115 Class::MOP::Deprecated::deprecated(
116 'The construct_instance method has been made private.'
117 . " The public version is deprecated and will be removed in a future release.\n"
119 shift->_construct_instance(@_);
122 sub create_meta_instance {
123 Class::MOP::Deprecated::deprecated(
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"
127 shift->_create_meta_instance(@_);
131 Class::MOP::Deprecated::deprecated(
132 'The clone_instance method has been made private.'
133 . " The public version is deprecated and will be removed in a future release.\n"
135 shift->_clone_instance(@_);
139 Class::MOP::Deprecated::deprecated(
140 "The alias_method method is deprecated. Use add_method instead.\n");
142 shift->add_method(@_);
145 sub compute_all_applicable_methods {
146 Class::MOP::Deprecated::deprecated(
147 'The compute_all_applicable_methods method is deprecated.'
148 . " Use get_all_methods instead.\n" );
153 class => $_->package_name,
154 code => $_, # sigh, overloading
156 } shift->get_all_methods(@_);
159 sub compute_all_applicable_attributes {
160 Class::MOP::Deprecated::deprecated(
161 'The compute_all_applicable_attributes method has been deprecated.'
162 . " Use get_all_attributes instead.\n" );
164 shift->get_all_attributes(@_);
167 sub get_attribute_map {
168 Class::MOP::Deprecated::deprecated(
169 "The get_attribute_map method has been deprecated.\n");
171 shift->_attribute_map(@_);
175 Class::MOP::Instance;
177 sub bless_instance_structure {
178 Class::MOP::Deprecated::deprecated(
179 'The bless_instance_structure method is deprecated.'
180 . " It will be removed in a future release.\n" );
182 my ( $self, $instance_structure ) = @_;
183 bless $instance_structure, $self->_class_name;
187 Class::MOP::Attribute;
189 sub process_accessors {
190 Class::MOP::Deprecated::deprecated(
191 'The process_accessors method has been made private.'
192 . " The public version is deprecated and will be removed in a future release.\n"
194 shift->_process_accessors(@_);
198 Class::MOP::Method::Accessor;
200 sub initialize_body {
201 Class::MOP::Deprecated::deprecated(
202 'The initialize_body method has been made private.'
203 . " The public version is deprecated and will be removed in a future release.\n"
205 shift->_initialize_body;
208 sub generate_accessor_method {
209 Class::MOP::Deprecated::deprecated(
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"
213 shift->_generate_accessor_method;
216 sub generate_reader_method {
217 Class::MOP::Deprecated::deprecated(
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"
221 shift->_generate_reader_method;
224 sub generate_writer_method {
225 Class::MOP::Deprecated::deprecated(
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"
229 shift->_generate_writer_method;
232 sub generate_predicate_method {
233 Class::MOP::Deprecated::deprecated(
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"
237 shift->_generate_predicate_method;
240 sub generate_clearer_method {
241 Class::MOP::Deprecated::deprecated(
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"
245 shift->_generate_clearer_method;
248 sub generate_accessor_method_inline {
249 Class::MOP::Deprecated::deprecated(
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"
253 shift->_generate_accessor_method_inline;
256 sub generate_reader_method_inline {
257 Class::MOP::Deprecated::deprecated(
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"
261 shift->_generate_reader_method_inline;
264 sub generate_writer_method_inline {
265 Class::MOP::Deprecated::deprecated(
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"
269 shift->_generate_writer_method_inline;
272 sub generate_predicate_method_inline {
273 Class::MOP::Deprecated::deprecated(
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"
277 shift->_generate_predicate_method_inline;
280 sub generate_clearer_method_inline {
281 Class::MOP::Deprecated::deprecated(
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"
285 shift->_generate_clearer_method_inline;
289 Class::MOP::Method::Constructor;
292 Class::MOP::Deprecated::deprecated(
293 'The meta_instance method has been made private.'
294 . " The public version is deprecated and will be removed in a future release.\n"
296 shift->_meta_instance;
300 Class::MOP::Deprecated::deprecated(
301 'The attributes method has been made private.'
302 . " The public version is deprecated and will be removed in a future release.\n"
305 return shift->_attributes;
308 sub initialize_body {
309 Class::MOP::Deprecated::deprecated(
310 'The initialize_body method has been made private.'
311 . " The public version is deprecated and will be removed in a future release.\n"
313 shift->_initialize_body;
316 sub generate_constructor_method {
317 Class::MOP::Deprecated::deprecated(
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"
321 shift->_generate_constructor_method;
324 sub generate_constructor_method_inline {
325 Class::MOP::Deprecated::deprecated(
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"
329 shift->_generate_constructor_method_inline;
340 Class::MOP::Deprecated - Manages deprecation warnings for Class::MOP
344 use Class::MOP::Deprecated -api_version => $version;
348 This module manages deprecation warnings for features that have been
349 deprecated in Class::MOP.
351 If you specify C<< -api_version => $version >>, you can use deprecated features
352 without warnings. Note that this special treatment is limited to the package
353 that loads C<Class::MOP::Deprecated>.
357 Goro Fuji E<lt>gfuji@cpan.orgE<gt>
359 =head1 COPYRIGHT AND LICENSE
361 Copyright 2006-2010 by Infinity Interactive, Inc.
363 L<http://www.iinteractive.com>
365 This library is free software; you can redistribute it and/or modify
366 it under the same terms as Perl itself.