changeset 258:91bae9f41a9c

Added class for referencing paths in configuration files
author sergey
date Tue, 18 Dec 2012 19:18:31 +0400
parents 32aceba4ee6d
children b92f19630d33
files Lib/IMPL/Config/Path.pm
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	Tue Dec 18 19:18:31 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