class StereoMatch implements Predicate<int[]> {

    @Override
    public boolean apply(final int[] mapping) {

        // n.b. not true for unspecified queries e.g. [C@?H](*)(*)*
        if (queryStereoIndices.length > targetStereoIndices.length) return false;

        for (final int u : queryStereoIndices) {
            switch (queryTypes[u]) {
                case Tetrahedral:
                    if (!checkTetrahedral(u, mapping)) return false;
                    break;
                case Geometric:
                    if (!checkGeometric(u, otherIndex(u), mapping)) return false;
                    break;
            }
        }
        return true;
    }

      StereoMatch(IAtomContainer query, IAtomContainer target);

}