1 package com.atlassian.activeobjects.spring;
2
3 import org.springframework.beans.BeansException;
4 import org.springframework.beans.factory.FactoryBean;
5 import org.springframework.context.ApplicationContext;
6 import org.springframework.context.ApplicationContextAware;
7
8 import static com.google.common.base.Preconditions.checkNotNull;
9
10 public final class ApplicationContextFactoryBean implements FactoryBean, ApplicationContextAware {
11 private ApplicationContext applicationContext;
12
13 @Override
14 public Object getObject() throws Exception {
15 return applicationContext;
16 }
17
18 @Override
19 public Class getObjectType() {
20 return ApplicationContext.class;
21 }
22
23 @Override
24 public boolean isSingleton() {
25 return true;
26 }
27
28 @Override
29 public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
30 this.applicationContext = checkNotNull(applicationContext);
31 }
32 }