@Override public List<T> get() { if(null == beans){ beans = null == qualifier ? factory.getBeans(type) : factory.getBeans(type,qualifier); if(notEmpty & beans.isEmpty()) { StringBuilder s = new StringBuilder(); s.append("The list of bean ["); if (null != type) { s.append(" type=").append(type.getName()); } s.append(" ] cannot be empty"); throw new BeanException(s.toString()); } } return beans; }
@Override public <T> List<T> getBeans(Class<? super T> type, String qualifier) throws BeanException { List<T> beans = null != externalFactory ? externalFactory.getBeans(type) : null; if(null == beans){ return beanContainer.getBeans(type,qualifier); }else{ List<T> list = new ArrayList<T>(beans); list.addAll(beanContainer.<T>getBeans(type,qualifier)); return list; } }
@Override public <T> List<T> getBeans(Class<? super T> type) throws BeanException { //TODO : duplicated name between external factory and internal factory ? List<T> beans = null != externalFactory ? externalFactory.getBeans(type) : null; if(null == beans){ return beanContainer.getBeans(type); }else{ List<T> list = new ArrayList<T>(beans); list.addAll(beanContainer.<T>getBeans(type)); return list; } }
@Init private void init() { for(CliCommands commands : AppContext.factory().getBeans(CliCommands.class)) { commands.register(this); } BufferedReader buffer=new BufferedReader(new InputStreamReader(System.in)); this.reader = () -> buffer.readLine(); this.writer = (line) -> System.out.println(line); }
@SuppressWarnings("unchecked") private static Map<String,DbPlatform> currentPlatforms(AppContext context){ Map<String, DbPlatform> platforms = (Map<String, DbPlatform>)context.getAttribute(CONTEXT_ATTRIBUTE_NAME); if(null == platforms) { platforms = new ConcurrentHashMap<String, DbPlatform>(); for(DbPlatform p : context.getBeanFactory().getBeans(DbPlatform.class)) { platforms.put(p.getName().toLowerCase(), p); } context.setAttribute(CONTEXT_ATTRIBUTE_NAME, platforms); } return platforms; }
@Override public void postCreate(BeanFactory factory) throws Throwable { registerDefaults(factory); registerConfigs(factory.getAppConfig()); for(Entry<String, ElFunction> entry : factory.getNamedBeans(ElFunction.class).entrySet()){ registerFunction(null, entry.getKey(), entry.getValue()); } for(ElConfigurator bean : factory.getBeans(ElConfigurator.class)){ bean.configure(this); } ElConfig config = factory.getAppConfig().removeExtension(ElConfig.class); if(null != config){ registerConfigs(config); } }
protected static void onInited(AppContext context) { try { context.postInit(); for (AppContextInitializable bean : context.getBeanFactory().getBeans(AppContextInitializable.class)) { bean.postInit(context); } context.getBeanFactory().postInit(context); } catch (Throwable e) { Exceptions.uncheckAndThrow(e); } }
@Override public void postCreate(BeanFactory beanFactory) throws Exception { _readonly.check().enable(); if(null == metadata){ OrmMetadataManager mm = beanFactory.getBean(OrmMetadataManager.class); metadata = mm.createMetadata(); mm.loadMetadata(this); } if(null == dao) { dao = new WrappedDao(beanFactory.inject(new DefaultDao(this))); beanFactory.addBean(Dao.class, dao, name, primary); } if(null == dmo) { dmo = beanFactory.inject(new DefaultDmo(this)); beanFactory.addBean(Dmo.class, dmo, name, primary); } for(OrmContextInitializable init : beanFactory.getBeans(OrmContextInitializable.class)){ init.postInitialize(this); } }