Mercurial > pub > Impl
changeset 259:b92f19630d33
Merge with 91bae9f41a9cf2d52f5cff5a5c3e7c8683c7d47e
author | sergey |
---|---|
date | Fri, 21 Dec 2012 00:09:11 +0400 |
parents | 299af584c05f (current diff) 91bae9f41a9c (diff) |
children | 2879cdb6b8cd |
files | |
diffstat | 1 files changed, 29 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Lib/IMPL/Config/Path.pm Fri Dec 21 00:09:11 2012 +0400 @@ -0,0 +1,29 @@ +package IMPL::Config::Path; +use strict; +use IMPL::Config(); + +use IMPL::require { + Exception => 'IMPL::Exception', + OpException => '-IMPL::InvalidOperationException' +}; + +sub restore { + my ($self,$data,$surrogate) = @_; + + die OpException->new("Invalid content") unless ref $data eq 'ARRAY' && @$data == 2; + + my ($base,$path) = @$data; + + my %types = ( + appBase => 'AppBase', + configBase => 'ConfigBase' + ); + + my $method = $types{$base}; + + die OpException->new("Unsupported path type",$base) unless $method; + + return IMPL::Config->$method($path); +} + +1; \ No newline at end of file