@Override
public Mappings matchAll(final IAtomContainer target) {
final EdgeToBondMap bonds2;
final int[][] g2;
AdjListCache cached = target.getProperty(AdjListCache.class.getName());
if (cached == null || !cached.validate(target)) {
cached = new AdjListCache(target);
target.setProperty(AdjListCache.class.getName(), cached);
}
bonds2 = cached.bmap;
g2 = cached.g;
Iterable<int[]> iterable = new VFIterable(query, target,
g1, g2,
bonds1, bonds2,
atomMatcher, bondMatcher,
subgraph);
Mappings mappings = new Mappings(query, target, iterable);
return filter(mappings, query, target);
}