@Override public SearchEngine getSearchEngine(PageContext pc) throws PageException { if (searchEngine == null) { try { Object o = ClassUtil.loadInstance(getSearchEngineClassDefinition().getClazz()); if (o instanceof SearchEngine) searchEngine = (SearchEngine) o; else throw new ApplicationException( "class [" + o.getClass().getName() + "] does not implement the interface SearchEngine"); searchEngine.init( this, ConfigWebUtil.getFile( getConfigDir(), ConfigWebUtil.translateOldPath(getSearchEngineDirectory()), "search", getConfigDir(), FileUtil.TYPE_DIR, this)); } catch (Exception e) { throw Caster.toPageException(e); } } return searchEngine; }