class CDKMCSHandler extends AbstractMCSAlgorithm implements IMCSBase {

    @Override
    public void searchMCS(boolean shouldMatchBonds) {

        CDKRMapHandler rmap = new CDKRMapHandler();

        try {

            if ((source.getAtomCount() == target.getAtomCount()) && source.getBondCount() == target.getBondCount()) {
                rOnPFlag = true;
                rmap.calculateOverlapsAndReduceExactMatch(source, target, shouldMatchBonds);

            } else if (source.getAtomCount() > target.getAtomCount() && source.getBondCount() != target.getBondCount()) {
                rOnPFlag = true;
                rmap.calculateOverlapsAndReduce(source, target, shouldMatchBonds);

            } else {
                rOnPFlag = false;
                rmap.calculateOverlapsAndReduce(target, source, shouldMatchBonds);
            }

            setAllMapping();
            setAllAtomMapping();
            setFirstMapping();
            setFirstAtomMapping();

        } catch (CDKException e) {
            rmap = null;
            //            System.err.println("WARNING: graphContainer: most probably time out error ");
        }
    }

    public  CDKMCSHandler();

}