code: @Override
      public boolean isSubgraph(boolean shouldMatchBonds) {
  
          CDKRMapHandler rmap = new CDKRMapHandler();
  
          try {
  
              if ((source.getAtomCount() == target.getAtomCount()) && source.getBondCount() == target.getBondCount()) {
                  rOnPFlag = true;
                  rmap.calculateIsomorphs(source, target, shouldMatchBonds);
  
              } else if (source.getAtomCount() > target.getAtomCount() && source.getBondCount() != target.getBondCount()) {
                  rOnPFlag = true;
                  rmap.calculateSubGraphs(source, target, shouldMatchBonds);
  
              } else {
                  rOnPFlag = false;
                  rmap.calculateSubGraphs(target, source, shouldMatchBonds);
              }
  
              setAllMapping();
              setAllAtomMapping();
              setFirstMapping();
              setFirstAtomMapping();
  
          } catch (CDKException e) {
              rmap = null;
              //            System.err.println("WARNING: graphContainer: most probably time out error ");
          }
  
          return !getFirstMapping().isEmpty();
      }
docs: {@inheritDoc}
  
  @param shouldMatchBonds