view lib/IMPL/Config/Path.pm @ 413:af8d359ee4cc ref20150831

working on di container
author cin
date Thu, 24 Sep 2015 12:19:30 +0300
parents c6e90e02dd17
children
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 => 'AppDir',
	   configBase => 'ConfigDir'
	);
	
	my $method = $types{$base};
	
	die OpException->new("Unsupported path type",$base) unless $method;
	
	return IMPL::Config->$method($path);
}

1;