private void storeAnalysis(AnalysisDescription analysisDescription) throws AnalyzerException { try { kvs.setValue(ANALYSIS, analysisDescription.getName(), analysisDescription); } catch (KVStoreException e) { throw new AnalyzerException( "Error while storing analysis '" + analysisDescription.getName() + "'", e); } }
public void registerAnalysis(AnalysisDescription analysisDescription, boolean persist) throws AnalyzerException { Class<? extends Analysis> clazz; try { clazz = (Class<? extends Analysis>) Class.forName(analysisDescription.getClassName()); } catch (ClassNotFoundException e) { throw new AnalyzerException("Error while loading analysis class", e); } Constructor<? extends Analysis> constructor; try { constructor = clazz.getConstructor(ActivityLog.class, String.class, String.class); } catch (NoSuchMethodException e) { throw new AnalyzerException("Error while getting constructor", e); } Analysis analysis; try { analysis = constructor.newInstance( alog, analysisDescription.getName(), analysisDescription.getDescription()); } catch (InstantiationException e) { throw new AnalyzerException("Error while instantiating analysis", e); } catch (IllegalAccessException e) { throw new AnalyzerException("Error while instantiating analysis", e); } catch (InvocationTargetException e) { throw new AnalyzerException("Error while instantiating analysis", e); } try { analysis.registerQuery(analysisDescription.getQuery()); } catch (AnalysisException e) { throw new AnalyzerException("Error while registering query", e); } if (analyses.contains(analysis)) { throw new AnalyzerException( "Analysis '" + analysisDescription.getName() + "' already registered"); } analyses.add(analysis); analysisDescriptions.put(analysisDescription.getName(), analysisDescription); if (persist) { storeAnalysis(analysisDescription); } }