view Lib/IMPL/Config/Path.pm @ 263:0f59b2de72af

*fixed IMPL::DOM::Schema circular module references *modified IMPL::Object::Singleton, added auto-activation *code cleanups, docs
author sergey
date Wed, 09 Jan 2013 05:17:44 +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;