| 407 | 1 package IMPL::Config::ActivationContext; | 
|  | 2 | 
|  | 3 use IMPL::Const qw(:prop); | 
|  | 4 use IMPL::Exception(); | 
|  | 5 use IMPL::declare { | 
|  | 6 	require => { | 
|  | 7 		PropertyBag => 'IMPL::Config::ServicesBag' | 
|  | 8 	}, | 
|  | 9 	base => { | 
|  | 10 		'IMPL::Object' => '@_' | 
|  | 11 	}, | 
|  | 12 	props => { | 
|  | 13 		_services => PROP_RW, | 
|  | 14 		_cache => PROP_RW, | 
|  | 15 		_stack => PROP_RW | 
|  | 16 	} | 
|  | 17 }; | 
|  | 18 | 
|  | 19 sub GetService { | 
|  | 20 	my ($this,$serviceId) = @_; | 
|  | 21 | 
|  | 22 	$this->_services-> | 
|  | 23 } | 
|  | 24 | 
|  | 25 sub EnterScope { | 
|  | 26 	my ($this, $name, $localize) = @_; | 
|  | 27 | 
|  | 28 	my $info = { name => $name }; | 
|  | 29 | 
|  | 30 	if ($localize) { | 
|  | 31 		$info->{services} = $this->_services; | 
|  | 32 | 
|  | 33 		$this->_services(PropertyBag->new($this->_services)); | 
|  | 34 	} | 
|  | 35 | 
|  | 36 	$this->_stack->Push($info); | 
|  | 37 } | 
|  | 38 | 
|  | 39 sub LeaveScope { | 
|  | 40 	my ($this) = @_; | 
|  | 41 | 
|  | 42 	my $info = $this->_stack->Pop() | 
|  | 43 		or die IMPL::InvalidOperationException(); | 
|  | 44 | 
|  | 45 	if ($info->{services}) | 
|  | 46 		$this->_services($info->{services}); | 
|  | 47 } | 
|  | 48 | 
|  | 49 1; | 
|  | 50 __END__ | 
|  | 51 | 
|  | 52 =pod | 
|  | 53 | 
|  | 54 =head1 NAME | 
|  | 55 | 
|  | 56 C<IMPL::Config::ActivationContext> - an activation context for the service | 
|  | 57 | 
|  | 58 =head1 SYNOPSIS | 
|  | 59 | 
|  | 60 For the internal use only | 
|  | 61 | 
|  | 62 =head1 MEMBERS | 
|  | 63 | 
|  | 64 =head2 METHODS | 
|  | 65 | 
|  | 66 =head3 GetService($serviceId) | 
|  | 67 | 
|  | 68 =cut |