code: @Override
      public IBitFingerprint getBitFingerprint(IAtomContainer atomContainer) throws CDKException {
          if (keys.isEmpty()) {
              throw new CDKException("No substructures were defined");
          }
  
          SmartsPattern.prepare(atomContainer);
          BitSet fingerPrint = new BitSet(keys.size());
          for (int i = 0; i < keys.size(); i++) {
              if (keys.get(i).pattern.matches(atomContainer))
                  fingerPrint.set(i, true);
          }
          return new BitSetFingerprint(fingerPrint);
      }
docs: {@inheritDoc}