view Lib/IMPL/Config/Path.pm @ 259:b92f19630d33

Merge with 91bae9f41a9cf2d52f5cff5a5c3e7c8683c7d47e
author sergey
date Fri, 21 Dec 2012 00:09:11 +0400
parents 91bae9f41a9c
children 212cc86e470b
line wrap: on
line source

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;