| 1015 | | # This method is overridden since D::OD uses column_values to retrieve |
| 1016 | | # the content to cache if caching is enabled. Thus, we must ensure any |
| 1017 | | # metadata is serialized prior to caching. |
| 1018 | | sub column_values { |
| 1019 | | my $props = $_[0]->properties; |
| 1020 | | if ($props->{meta_column} |
| 1021 | | && $_[0]->{changed_cols}{$props->{meta_column}}) { |
| 1022 | | $_[0]->pre_save_serialize_metadata; |
| 1023 | | } |
| 1024 | | return $_[0]->SUPER::column_values(@_); |
| | 1015 | sub deflate { |
| | 1016 | my $obj = shift; |
| | 1017 | my $data = $obj->SUPER::deflate(); |
| | 1018 | if ($obj->has_meta()) { |
| | 1019 | $data->{meta} = $obj->{__meta}->deflate_meta(); |
| | 1020 | } |
| | 1021 | return $data; |
| | 1022 | } |
| | 1023 | |
| | 1024 | sub inflate { |
| | 1025 | my $class = shift; |
| | 1026 | my ($data) = @_; |
| | 1027 | my $obj = $class->SUPER::inflate(@_); |
| | 1028 | if ($class->has_meta()) { |
| | 1029 | $obj->{__meta}->inflate_meta($data->{meta}); |
| | 1030 | } |
| | 1031 | return $obj; |