code: public IRingSet getAllRings() throws NoSuchAtomException {
          IRingSet ringset = getBasicRings();
          IRing newring;
  
          int nBasicRings = ringset.getAtomContainerCount();
          for (int i = 0; i < nBasicRings; i++)
              getBondsInRing(molecule, (IRing) ringset.getAtomContainer(i), cb[i]);
  
          for (int i = 0; i < nBasicRings; i++) {
              for (int j = i + 1; j < nBasicRings; j++) {
                  //logger.debug("combining rings "+(i+1)+","+(j+1));
                  newring = combineRings(ringset, i, j);
                  //newring = combineRings((Ring)ringset.get(i),(Ring)ringset.get(j));
                  if (newring != null) ringset.addAtomContainer(newring);
              }
          }
  
          return ringset;
      }
docs: All basic rings and the all pairs of basic rings share at least one edge
  combined.
  
  @return subset of all rings
  @throws NoSuchAtomException atom was not found in the molecule
  @see #getBasicRings()