public void registerPattern(final IQuerySpecification<?>... patterns) { IncQueryEngine engine = null; try { engine = key.getEngine(); if (engine.getBaseIndex().isInWildcardMode()) { addMatchersForPatterns(patterns); } else { engine .getBaseIndex() .coalesceTraversals( new Callable<Void>() { @Override public Void call() { addMatchersForPatterns(patterns); return null; } }); } contentStatus = Status.OK_STATUS; } catch (IncQueryException ex) { reportMatcherError("Cannot initialize pattern matcher engine.", ex); } catch (InvocationTargetException e) { reportMatcherError( "Error during pattern matcher construction: " + e.getCause().getMessage(), e.getCause()); } }
@Override public void dispose() { super.dispose(); AdvancedIncQueryEngine engine = key.getEngine(); if (engine != null) { engine.removeLifecycleListener(taintListener); } }
public PatternMatcherRootContent(RootContent parent, PatternMatcherRootContentKey key) { super(parent); this.children = new ContentChildren<PatternMatcherContent>(); this.taintListener = new ContentEngineTaintListener(); this.mapping = Maps.newHashMap(); this.key = key; AdvancedIncQueryEngine engine = key.getEngine(); if (engine == null) { key.setEngine(createEngine()); } if (engine != null) { engine.addLifecycleListener(taintListener); } }
private void addMatchersForPatterns(IQuerySpecification<?>... queries) { for (IQuerySpecification<?> query : queries) { boolean isGenerated = QueryExplorerPatternRegistry.getInstance().isGenerated(query); addMatcher(key.getEngine(), query, isGenerated); } }
public boolean isTainted() { AdvancedIncQueryEngine engine = key.getEngine(); return (engine == null) ? true : engine.isTainted(); }