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