/** * Get a definition by its name. * * @param name Name of requested definition. * @param request Current servlet request. * @param servletContext Current servlet context. * @throws NoSuchDefinitionException No definition found for specified name * @throws DefinitionsFactoryException General exception */ public ComponentDefinition getDefinition( String name, ServletRequest request, ServletContext servletContext) throws NoSuchDefinitionException, DefinitionsFactoryException { if (factories == null) throw new FactoryNotFoundException("No definitions factory defined"); Object key = getDefinitionsFactoryKey(name, request, servletContext); DefinitionsFactory factory = getFactory(key, request, servletContext); return factory.getDefinition(name, request, servletContext); }
/** * Make definition factory accessible to tags. Factory is stored in servlet context. * * @param factory Factory to be made accessible. * @param servletContext Current servlet context. */ protected void makeDefinitionsFactoryAccessible( DefinitionsFactory factory, ServletContext servletContext) { String prefix = factory.getConfig().getFactoryName(); servletContext.setAttribute(DEFINITIONS_FACTORY + prefix, factory); }