code: public static RgroupStructure buildMoleculefromSinglePolymer(final PolymerNotation polymernotation) throws BuilderMoleculeException, HELM2HandledException, ChemistryException {
      LOG.info("Build molecule for single Polymer " + polymernotation.getPolymerID().getId());
      /* Case 1: BLOB -> throw exception */
      if (polymernotation.getPolymerID() instanceof BlobEntity) {
        LOG.error("Molecule can't be build for BLOB");
        throw new BuilderMoleculeException("Molecule can't be build for BLOB");
      } /* Case 2: CHEM */ else if (polymernotation.getPolymerID() instanceof ChemEntity) {
        List<Monomer> validMonomers = MethodsMonomerUtils.getListOfHandledMonomers(polymernotation.getPolymerElements().getListOfElements());
        return buildMoleculefromCHEM(polymernotation.getPolymerID().getId(), validMonomers);
      } /* Case 3: RNA or PEPTIDE */ else if (polymernotation.getPolymerID() instanceof RNAEntity
          || polymernotation.getPolymerID() instanceof PeptideEntity) {
        List<Monomer> validMonomers =
            MethodsMonomerUtils.getListOfHandledMonomers(polymernotation.getPolymerElements().getListOfElements());
        return buildMoleculefromPeptideOrRNA(polymernotation.getPolymerID().getId(), validMonomers);
      } else {
        LOG.error("Molecule can't be build for unknown polymer type");
        throw new BuilderMoleculeException("Molecule can't be build for unknown polymer type");
      }
    }
docs: method to build a molecule for a single polymer
  
  @param polymernotation a single polymer
  @return molecule for the given single polymer
  @throws BuilderMoleculeException if the polymer type is BLOB or unknown
  @throws HELM2HandledException if the polymer contains HELM2 features
  @throws ChemistryException if the Chemistry Engine can not be initialized