@Override public EdgeExplorer createEdgeExplorer(final EdgeFilter edgeFilter) { if (!isInitialized()) throw new IllegalStateException("Call lookup before using this graph"); if (useEdgeExplorerCache) { int counter = -1; if (edgeFilter instanceof DefaultEdgeFilter) { DefaultEdgeFilter dee = (DefaultEdgeFilter) edgeFilter; counter = 0; if (dee.acceptsBackward()) counter = 1; if (dee.acceptsForward()) counter += 2; if (counter == 0) throw new IllegalStateException("You tried to use an edge filter blocking every access"); } else if (edgeFilter == EdgeFilter.ALL_EDGES) { counter = 4; } if (counter >= 0) { EdgeExplorer cached = cacheMap.get(counter); if (cached == null) { cached = createUncachedEdgeExplorer(edgeFilter); cacheMap.put(counter, cached); } return cached; } } return createUncachedEdgeExplorer(edgeFilter); }
@Override public EdgeExplorer createEdgeExplorer(final EdgeFilter edgeFilter) { if (!isInitialized()) throw new IllegalStateException("Call lookup before using this graph"); if (useEdgeExplorerCache) { int counter = -1; if (edgeFilter instanceof DefaultEdgeFilter) { DefaultEdgeFilter dee = (DefaultEdgeFilter) edgeFilter; counter = 0; if (dee.acceptsBackward()) counter = 1; if (dee.acceptsForward()) counter += 2; if (counter == 0) throw new IllegalStateException("You tried to use an edge filter blocking every access"); } else if (edgeFilter == EdgeFilter.ALL_EDGES) { counter = 4; } if (counter >= 0) { EdgeExplorer cached = cacheMap.get(counter); if (cached == null) { cached = createUncachedEdgeExplorer(edgeFilter); cacheMap.put(counter, cached); } return cached; } } return createUncachedEdgeExplorer(edgeFilter); }
@Override public EdgeExplorer createEdgeExplorer(final EdgeFilter edgeFilter) { if (!isInitialized()) throw new IllegalStateException("Call lookup before using this graph"); if (useEdgeExplorerCache) { int counter = -1; if (edgeFilter instanceof DefaultEdgeFilter) { DefaultEdgeFilter dee = (DefaultEdgeFilter) edgeFilter; counter = 0; if (dee.acceptsBackward()) counter = 1; if (dee.acceptsForward()) counter += 2; if (counter == 0) throw new IllegalStateException("You tried to use an edge filter blocking every access"); } else if (edgeFilter == EdgeFilter.ALL_EDGES) { counter = 4; } if (counter >= 0) { EdgeExplorer cached = cacheMap.get(counter); if (cached == null) { cached = createUncachedEdgeExplorer(edgeFilter); cacheMap.put(counter, cached); } return cached; } } return createUncachedEdgeExplorer(edgeFilter); }