code: public void processConnections(String bondsEncoding, IAtomContainer container, int source) {
          logger.debug("Parsing bond data: ", bondsEncoding);
  
          IBond bondToAdd = null;
          /* Fixme: treatment of branching is too limited! */
          String remainder = bondsEncoding;
          while (remainder.length() > 0) {
              logger.debug("Bond part: ", remainder);
              if (remainder.charAt(0) == '(') {
                  String branch = chopBranch(remainder);
                  processConnections(branch, container, source);
                  if (branch.length() + 2 <= remainder.length()) {
                      remainder = remainder.substring(branch.length() + 2);
                  } else {
                      remainder = "";
                  }
              } else {
                  Pattern pattern = Pattern.compile("^(\\d+)-?(.*)");
                  Matcher matcher = pattern.matcher(remainder);
                  if (matcher.matches()) {
                      String targetStr = matcher.group(1);
                      int target = Integer.parseInt(targetStr);
                      logger.debug("Source atom: ", source);
                      logger.debug("Target atom: ", targetStr);
                      IAtom targetAtom = container.getAtom(target - 1);
                      if (source != -1) {
                          IAtom sourceAtom = container.getAtom(source - 1);
                          bondToAdd = container.getBuilder().newInstance(IBond.class, sourceAtom, targetAtom,
                                  IBond.Order.SINGLE);
                          container.addBond(bondToAdd);
                      }
                      remainder = matcher.group(2);
                      source = target;
                      logger.debug("  remainder: ", remainder);
                  } else {
                      logger.error("Could not get next bond info part");
                      return;
                  }
              }
          }
      }
docs: Processes the content from the connections field of the INChI.
  Typical values look like 1-2-4-6-5-3-1, from INChI=1.12Beta/C6H6/c1-2-4-6-5-3-1/h1-6H.
  
  @param bondsEncoding the content of the INChI connections field
  @param container     the atomContainer parsed from the formula field
  @param source        the atom to build the path upon. If -1, then start new path
  
  @see   #processFormula