test_class.declarator: logger          = LoggingToolFactory
                                                                  .createLoggingTool(MMFF94AtomTypeMatcherTest.class)
test_class.modifier: private static
test_class.original_string: private static ILoggingTool         logger          = LoggingToolFactory
                                                                  .createLoggingTool(MMFF94AtomTypeMatcherTest.class);
test_class.type: ILoggingTool
test_class.var_name: logger
test_class.declarator: builder         = DefaultChemObjectBuilder.getInstance()
test_class.modifier: private final
test_class.original_string: private final IChemObjectBuilder    builder         = DefaultChemObjectBuilder.getInstance();
test_class.type: IChemObjectBuilder
test_class.var_name: builder
test_class.declarator: testMolecule    = null
test_class.modifier: private static
test_class.original_string: private static IAtomContainer       testMolecule    = null;
test_class.type: IAtomContainer
test_class.var_name: testMolecule
test_class.declarator: testedAtomTypes = new HashMap<String, Integer>()
test_class.modifier: private static
test_class.original_string: private static Map<String, Integer> testedAtomTypes = new HashMap<String, Integer>();
test_class.type: Map<String, Integer>
test_class.var_name: testedAtomTypes
test_class.file: legacy/src/test/java/org/openscience/cdk/atomtype/MMFF94AtomTypeMatcherTest.java
test_class.identifier: MMFF94AtomTypeMatcherTest
test_class.superclass: extends AbstractAtomTypeTest
test_case.body: @Test
      public void testFindMatchingAtomType_IAtomContainer_IAtom_Benzene() throws Exception {
          //System.out.println("**** START ATOMTYPE Benzene TEST ******");
          IAtomContainer mol = builder.newInstance(IAtomContainer.class);
          for (int i = 0; i < 6; i++) {
              IAtom carbon = builder.newInstance(IAtom.class, Elements.CARBON);
              carbon.setFlag(CDKConstants.ISAROMATIC, true);
              // making sure the order matches the test results
              mol.addAtom(carbon);
          }
          IBond ringBond = builder
                  .newInstance(IBond.class, mol.getAtom(0), mol.getAtom(1), Order.DOUBLE);
          ringBond.setFlag(CDKConstants.ISAROMATIC, true);
          mol.addBond(ringBond);
          ringBond = builder.newInstance(IBond.class, mol.getAtom(1), mol.getAtom(2), Order.SINGLE);
          ringBond.setFlag(CDKConstants.ISAROMATIC, true);
          mol.addBond(ringBond);
          ringBond = builder.newInstance(IBond.class, mol.getAtom(2), mol.getAtom(3), Order.DOUBLE);
          ringBond.setFlag(CDKConstants.ISAROMATIC, true);
          mol.addBond(ringBond);
          ringBond = builder.newInstance(IBond.class, mol.getAtom(3), mol.getAtom(4), Order.SINGLE);
          ringBond.setFlag(CDKConstants.ISAROMATIC, true);
          mol.addBond(ringBond);
          ringBond = builder.newInstance(IBond.class, mol.getAtom(4), mol.getAtom(5), Order.DOUBLE);
          ringBond.setFlag(CDKConstants.ISAROMATIC, true);
          mol.addBond(ringBond);
          ringBond = builder.newInstance(IBond.class, mol.getAtom(5), mol.getAtom(0), Order.SINGLE);
          ringBond.setFlag(CDKConstants.ISAROMATIC, true);
          mol.addBond(ringBond);
  
          addExplicitHydrogens(mol);
  
          String[] testResult = {"Car", "Car", "Car", "Car", "Car", "Car", "HC", "HC", "HC", "HC", "HC", "HC"};
          AtomTypeTools att = new AtomTypeTools();
          MMFF94AtomTypeMatcher atm = new MMFF94AtomTypeMatcher();
          att.assignAtomTypePropertiesToAtom(mol, false);
          for (int i = 0; i < mol.getAtomCount(); i++) {
              logger.debug("atomNr:" + mol.getAtom(i).toString());
              IAtomType matched = atm.findMatchingAtomType(mol, mol.getAtom(i));
              Assert.assertNotNull(matched);
              //System.out.println("MatchedTypeID:"+matched.getID()+" "+matched.getSymbol()+" "+matched.getAtomTypeName());
              AtomTypeManipulator.configure(mol.getAtom(i), matched);
          }
          for (int i = 0; i < testResult.length; i++) {
              assertAtomType(testedAtomTypes, testResult[i], mol.getAtom(i));
          }
  
          //System.out.println("MMFF94 Atom 0:"+mol.getAtom(0).getAtomTypeName());
          //System.out.println(mol.toString());
      }
test_case.class_method_signature: MMFF94AtomTypeMatcherTest.testFindMatchingAtomType_IAtomContainer_IAtom_Benzene()
test_case.full_signature: @Test public void testFindMatchingAtomType_IAtomContainer_IAtom_Benzene()
test_case.identifier: testFindMatchingAtomType_IAtomContainer_IAtom_Benzene
test_case.invocations: newInstance newInstance setFlag addAtom newInstance getAtom getAtom setFlag addBond newInstance getAtom getAtom setFlag addBond newInstance getAtom getAtom setFlag addBond newInstance getAtom getAtom setFlag addBond newInstance getAtom getAtom setFlag addBond newInstance getAtom getAtom setFlag addBond addExplicitHydrogens assignAtomTypePropertiesToAtom getAtomCount debug toString getAtom findMatchingAtomType getAtom assertNotNull configure getAtom assertAtomType getAtom
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testFindMatchingAtomType_IAtomContainer_IAtom_Benzene()
focal_class.declarator: logger        = LoggingToolFactory.createLoggingTool(MMFF94AtomTypeMatcher.class)
focal_class.modifier: private static
focal_class.original_string: private static ILoggingTool logger        = LoggingToolFactory.createLoggingTool(MMFF94AtomTypeMatcher.class);
focal_class.type: ILoggingTool
focal_class.var_name: logger
focal_class.declarator: maxBondOrder  = IBond.Order.SINGLE
focal_class.original_string: IBond.Order                 maxBondOrder  = IBond.Order.SINGLE;
focal_class.type: IBond.Order
focal_class.var_name: maxBondOrder
focal_class.declarator: factory       = null
focal_class.modifier: private
focal_class.original_string: private AtomTypeFactory     factory       = null;
focal_class.type: AtomTypeFactory
focal_class.var_name: factory
focal_class.declarator: atomTypeTools = null
focal_class.original_string: AtomTypeTools               atomTypeTools = null;
focal_class.type: AtomTypeTools
focal_class.var_name: atomTypeTools
focal_class.declarator: atomTypeIds   = {"C", "Csp2", "C=", "Csp", "CO2M", "CNN+", "C%", "CIM+", "CR4R",
              "CR3R", "CE4R", "Car", "C5A", "C5B", "C5", "HC", "HO", "HN", "HOCO", "HN=C", "HN2", "HOCC", "HOH", "HOS",
              "HN+", "HO+", "HO=+", "HP", "O", "O=", "OX", "OM", "O+", "O=+", "OH2", "Oar", "N", "N=C", "NC=C", "NSP",
              "=N=", "NAZT", "N+", "N2OX", "N3OX", "NC#N", "NO3", "N=O", "NC=O", "NSO", "N+=", "NCN+", "NGD+", "NR%",
              "NM", "N5M", "NPYD", "NPYL", "NPD+", "N5A", "N5B", "NPOX", "N5OX", "N5+", "N5", "S", "S=C", ">SN", "SO2",
              "SX", "SO2M", "=SO", "Sthi", "PTET", "P", "-P=C", "F", "CL", "BR", "I", "SI", "CL04", "FE+2", "FE+3", "F-",
              "CL-", "BR-", "LI+", "NA+", "K+", "ZN+2", "CA+2", "CU+1", "CU+2", "MG+2", "DU"}
focal_class.original_string: String[]                    atomTypeIds   = {"C", "Csp2", "C=", "Csp", "CO2M", "CNN+", "C%", "CIM+", "CR4R",
              "CR3R", "CE4R", "Car", "C5A", "C5B", "C5", "HC", "HO", "HN", "HOCO", "HN=C", "HN2", "HOCC", "HOH", "HOS",
              "HN+", "HO+", "HO=+", "HP", "O", "O=", "OX", "OM", "O+", "O=+", "OH2", "Oar", "N", "N=C", "NC=C", "NSP",
              "=N=", "NAZT", "N+", "N2OX", "N3OX", "NC#N", "NO3", "N=O", "NC=O", "NSO", "N+=", "NCN+", "NGD+", "NR%",
              "NM", "N5M", "NPYD", "NPYL", "NPD+", "N5A", "N5B", "NPOX", "N5OX", "N5+", "N5", "S", "S=C", ">SN", "SO2",
              "SX", "SO2M", "=SO", "Sthi", "PTET", "P", "-P=C", "F", "CL", "BR", "I", "SI", "CL04", "FE+2", "FE+3", "F-",
              "CL-", "BR-", "LI+", "NA+", "K+", "ZN+2", "CA+2", "CU+1", "CU+2", "MG+2", "DU"};
focal_class.type: String[]
focal_class.var_name: atomTypeIds
focal_class.file: legacy/src/main/java/org/openscience/cdk/atomtype/MMFF94AtomTypeMatcher.java
focal_class.identifier: MMFF94AtomTypeMatcher
focal_class.interfaces: implements IAtomTypeMatcher
focal_class.class_method_signature: MMFF94AtomTypeMatcher.MMFF94AtomTypeMatcher()
focal_class.full_signature: public  MMFF94AtomTypeMatcher()
focal_class.identifier: MMFF94AtomTypeMatcher
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  MMFF94AtomTypeMatcher()
focal_class.class_method_signature: MMFF94AtomTypeMatcher.getSphericalMatcher(IAtomType type)
focal_class.full_signature: private String getSphericalMatcher(IAtomType type)
focal_class.identifier: getSphericalMatcher
focal_class.modifiers: private
focal_class.parameters: (IAtomType type)
focal_class.return: String
focal_class.signature: String getSphericalMatcher(IAtomType type)
focal_class.class_method_signature: MMFF94AtomTypeMatcher.getSphericalMatcher(String type)
focal_class.full_signature: private String getSphericalMatcher(String type)
focal_class.identifier: getSphericalMatcher
focal_class.modifiers: private
focal_class.parameters: (String type)
focal_class.return: String
focal_class.signature: String getSphericalMatcher(String type)
focal_class.class_method_signature: MMFF94AtomTypeMatcher.findMatchingAtomTypes(IAtomContainer atomContainer)
focal_class.full_signature: @Override public IAtomType[] findMatchingAtomTypes(IAtomContainer atomContainer)
focal_class.identifier: findMatchingAtomTypes
focal_class.modifiers: @Override public
focal_class.parameters: (IAtomContainer atomContainer)
focal_class.return: IAtomType[]
focal_class.signature: IAtomType[] findMatchingAtomTypes(IAtomContainer atomContainer)
focal_class.class_method_signature: MMFF94AtomTypeMatcher.findMatchingAtomType(IAtomContainer atomContainer, IAtom atomInterface)
focal_class.full_signature: @Override public IAtomType findMatchingAtomType(IAtomContainer atomContainer, IAtom atomInterface)
focal_class.identifier: findMatchingAtomType
focal_class.modifiers: @Override public
focal_class.parameters: (IAtomContainer atomContainer, IAtom atomInterface)
focal_class.return: IAtomType
focal_class.signature: IAtomType findMatchingAtomType(IAtomContainer atomContainer, IAtom atomInterface)
focal_method.body: @Override
      public IAtomType findMatchingAtomType(IAtomContainer atomContainer, IAtom atomInterface) throws CDKException {
          if (factory == null) {
              try {
                  factory = AtomTypeFactory.getInstance("org/openscience/cdk/config/data/mmff94_atomtypes.xml",
                          atomContainer.getBuilder());
              } catch (Exception ex1) {
                  logger.error(ex1.getMessage());
                  logger.debug(ex1);
                  throw new CDKException("Could not instantiate the AtomType list!", ex1);
              }
          }
  
          IAtom atom = atomInterface;
          //logger.debug("****** Configure MMFF94 AtomType via findMatching ******");
          //logger.debug(" Symbol:" + atom.getSymbol() +" HoseCode>" + atom.getSphericalMatcher() + " ");
          logger.debug(" Symbol:" + atom.getSymbol() + " HoseCode>" + atom.getProperty(CDKConstants.SPHERICAL_MATCHER)
                  + " ");
          //System.out.print("IN MMFF94AtomTypeMatcher Symbol:" + atom.getSymbol() +" HoseCode>" + atom.getProperty(CDKConstants.SPHERICAL_MATCHER) + " ");
  
          if (atom instanceof IPseudoAtom) {
              return factory.getAtomTypes("DU")[0];
          }
          Pattern p1 = null;
          Pattern p2 = null;
          String ID = "";
          boolean atomTypeFlag = false;
          Matcher mat1 = null;
          Matcher mat2 = null;
          IBond.Order tmpMaxBondOrder;
          maxBondOrder = atomContainer.getMaximumBondOrder(atom);
          for (int j = 0; j < atomTypeIds.length; j++) {
              tmpMaxBondOrder = factory.getAtomType(atomTypeIds[j]).getMaxBondOrder();
              String atomSphericalMatcher = (String) factory.getAtomType(atomTypeIds[j]).getProperty(
                      CDKConstants.SPHERICAL_MATCHER);
              logger.debug(j + " ATOM TYPE " + tmpMaxBondOrder + " " + atomSphericalMatcher);
              p1 = Pattern.compile(atomSphericalMatcher);
              mat1 = p1.matcher((String) atom.getProperty(CDKConstants.SPHERICAL_MATCHER));
              if (mat1.matches()) {
                  ID = atomTypeIds[j];
                  Object property = atom.getProperty(CDKConstants.CHEMICAL_GROUP_CONSTANT);
                  int atomChemGroupConstant = (Integer) property;
                  Object ringSize = atom.getProperty(CDKConstants.PART_OF_RING_OF_SIZE);
                  int atomRingSize = -1;
                  if (ringSize != null) {
                      atomRingSize = (Integer) ringSize;
                  }
                  if (atomTypeIds[j].equals("C")) {
                      if (atomChemGroupConstant != -1) {//in Ring
                          if (ringSize != null && maxBondOrder == IBond.Order.SINGLE) {
                              if (atomRingSize == 3) {
                                  ID = atomTypeIds[9];//sp3 3mem rings
                              } else if (atomRingSize == 4) {
                                  ID = atomTypeIds[8];//sp3 4mem rings
                              }
                          } else {//sp2
                              String type13Matcher = getSphericalMatcher(atomTypeIds[13]);
                              p1 = Pattern.compile(type13Matcher);//C5B
                              mat1 = p1.matcher(atomSphericalMatcher);
                              String type12Matcher = getSphericalMatcher(atomTypeIds[12]);
                              p2 = Pattern.compile(type12Matcher);//C5A
                              mat2 = p2.matcher(atomSphericalMatcher);
                              if (mat1.matches() && atomChemGroupConstant % 2 == 0
                                      && atom.getFlag(CDKConstants.ISAROMATIC) && atomRingSize == 5) {
                                  ID = atomTypeIds[13];
                              } else if (mat2.matches() && atomChemGroupConstant % 2 == 0
                                      && atom.getFlag(CDKConstants.ISAROMATIC) && atomRingSize == 5) {
                                  ID = atomTypeIds[12];
                              } else if (atomChemGroupConstant % 2 == 0 && atom.getFlag(CDKConstants.ISAROMATIC)
                                      && atomRingSize == 5) {
                                  ID = atomTypeIds[14];//C5 in het 5 ring
                              } else if (atom.getFlag(CDKConstants.ISAROMATIC)) {
                                  ID = atomTypeIds[11];//Car in benzene, pyroll
                              }
                          }
  
                      } else {//not in Ring
                          p1 = Pattern.compile(getSphericalMatcher(atomTypeIds[66]));//S=C
                          mat1 = p1.matcher(atomSphericalMatcher);
                          if (mat1.matches()) {
                              ID = atomTypeIds[66];//S=C
                          }
                      }
  
                  } else if (atomTypeIds[j].equals("Csp2")) {
                      if (atomChemGroupConstant % 2 == 0 & atomRingSize == 4 & !atom.getFlag(CDKConstants.ISAROMATIC)) {
                          ID = atomTypeIds[10];//CE4R
                      }
  
                  } else if (atomTypeIds[j].equals("C=")) {
                      if (atomChemGroupConstant % 2 == 0 && atom.getFlag(CDKConstants.ISAROMATIC)) {
                          ID = atomTypeIds[12];//C5A
                      }
  
                  } else if (atomTypeIds[j].equals("N")) {
                      //Amid
                      p1 = Pattern.compile(getSphericalMatcher(atomTypeIds[48]));//NC=0
                      mat1 = p1.matcher(atomSphericalMatcher);
                      if (mat1.matches() && atomChemGroupConstant == -1) {
                          ID = atomTypeIds[48];//NC=O
                      }
                      //nsp3 oxide
                      p1 = Pattern.compile(getSphericalMatcher(atomTypeIds[44]));//sp3 n-oxide
                      mat1 = p1.matcher(atomSphericalMatcher);
                      if (mat1.matches() && maxBondOrder == tmpMaxBondOrder) {
                          ID = atomTypeIds[44];
                      }
                      //ring sytems
                      p1 = Pattern.compile(getSphericalMatcher(atomTypeIds[56]));
                      mat1 = p1.matcher(atomSphericalMatcher);
  
                      if (atomChemGroupConstant == 10) {
                          ID = atomTypeIds[56];
                      } else if (atomChemGroupConstant == 4) {
                          ID = atomTypeIds[57];
                      } else if (atomChemGroupConstant % 2 == 0 & atomRingSize == 5
                              & atom.getFlag(CDKConstants.ISAROMATIC)) {
                          ID = atomTypeIds[64];
                      }
                      //Nsp2-Oxides
                      p1 = Pattern.compile(getSphericalMatcher(atomTypeIds[61]));//npox
                      mat1 = p1.matcher(atomSphericalMatcher);
  
                      if (mat1.matches() && maxBondOrder == tmpMaxBondOrder) {
                          ID = atomTypeIds[43];
                      }
                      if (atom.getFlag(CDKConstants.ISAROMATIC)) {
                          if (mat1.matches() && atomChemGroupConstant == 12) {
                              ID = atomTypeIds[61];
                          } else if (mat1.matches() && atomRingSize == 5) {
                              ID = atomTypeIds[62];
                          }
                      }
                      //NC#N
                      p1 = Pattern.compile(getSphericalMatcher(atomTypeIds[45]));
                      mat1 = p1.matcher(getSphericalMatcher(atom));
                      if (mat1.matches()) {
                          ID = atomTypeIds[45];
                      }
  
                  } else if (atomTypeIds[j].equals("N=C")) {
                      //n beta heteroaromatic ring
                      p1 = Pattern.compile(getSphericalMatcher(atomTypeIds[59]));
                      mat1 = p1.matcher(getSphericalMatcher(atom));
                      if (atomChemGroupConstant != -1) {
                          if (mat1.matches() && atomChemGroupConstant % 2 == 0 && atom.getFlag(CDKConstants.ISAROMATIC)
                                  && atomRingSize == 5) {
                              ID = atomTypeIds[59];//N5A
                          } else if (atomChemGroupConstant == 10) {//NPYD
                              ID = atomTypeIds[56];
                          } else if (atomChemGroupConstant == 4) {//NPYL
                              ID = atomTypeIds[57];
                          }
                      }
                      //N2OX
                      p1 = Pattern.compile(getSphericalMatcher(atomTypeIds[43]));
                      mat1 = p1.matcher(getSphericalMatcher(atom));
                      if (mat1.matches()) {
                          if (atomChemGroupConstant == 10) {
                              ID = atomTypeIds[61];//npox
                          } else if (atom.getFlag(CDKConstants.ISAROMATIC) && atomRingSize == 5) {
                              ID = atomTypeIds[62];//n5ox
                          } else {
                              ID = atomTypeIds[43];//n2ox
                          }
                      }
  
                  } else if (atomTypeIds[j].equals("N2OX")) {
                      //NO3
                      p1 = Pattern.compile(getSphericalMatcher(atomTypeIds[46]));
                      mat1 = p1.matcher(getSphericalMatcher(atom));
                      if (mat1.matches() && atomChemGroupConstant == -1) {
                          ID = atomTypeIds[46];//NO3
                      }
                      if (atomChemGroupConstant == 12) {
                          ID = atomTypeIds[61];//NPOX
                      } else if (atomChemGroupConstant != -1 && atom.getFlag(CDKConstants.ISAROMATIC)
                              && atomRingSize == 5) {
                          ID = atomTypeIds[62];//N5OX
                      }
  
                  } else if (atomTypeIds[j].equals("=N=") || atomTypeIds[j].equals("NAZT")) {
                      if (atomChemGroupConstant != -1 && atom.getFlag(CDKConstants.ISAROMATIC) && atomRingSize == 5) {
                          ID = atomTypeIds[59];//aromatic N5A
                      }
  
                  } else if (atomTypeIds[j].equals("N+=")) {
                      if (atomChemGroupConstant != -1 && atom.getFlag(CDKConstants.ISAROMATIC) && atomRingSize == 5) {
                          ID = atomTypeIds[63];//n5+
                      } else if (atomChemGroupConstant == 12) {
                          ID = atomTypeIds[58];//npd+
                      }
  
                  } else if (atomTypeIds[j].equals("O")) {
                      if (atomChemGroupConstant == 6) {
                          ID = atomTypeIds[35];//Oar
                      }
  
                  } else if (atomTypeIds[j].equals("HO")) {
                      p1 = Pattern.compile(getSphericalMatcher(atomTypeIds[21]));
                      mat1 = p1.matcher(atomSphericalMatcher);
                      if (mat1.matches()) {
                          ID = atomTypeIds[21];//HOCC
                      }
                      p1 = Pattern.compile(getSphericalMatcher(atomTypeIds[18]));
                      mat1 = p1.matcher(atomSphericalMatcher);
                      if (mat1.matches()) {
                          ID = atomTypeIds[18];//HOCO
                      }
  
                  } else if (atomTypeIds[j].equals("P")) {
                      p1 = Pattern.compile(getSphericalMatcher(atomTypeIds[75]));
                      mat1 = p1.matcher(atomSphericalMatcher);
                      if (mat1.matches()) {
                          ID = atomTypeIds[75];//-P=C
                      }
                  } else if (atomTypeIds[j].equals("S")) {
                      if (atomRingSize == 5 && atom.getFlag(CDKConstants.ISAROMATIC)) {
                          ID = atomTypeIds[72];//Sthiophen
                      }
                  } else if (atomTypeIds[j].equals("HC")) {
                      p1 = Pattern.compile(getSphericalMatcher("HP"));
                      mat1 = p1.matcher((String) atom.getProperty(CDKConstants.SPHERICAL_MATCHER));
                      if (mat1.matches()) {
                          ID = "HP";
                      }
                  }
  
                  atomTypeFlag = true;
                  logger.debug(" MATCH AtomTypeID:" + j + " " + ID);
                  break;
              }//IF
          }//for end
          if (atomTypeFlag) {
              atomTypeFlag = false;
              //System.out.println(" "+ID);
              return factory.getAtomType(ID);
          } else {
              return factory.getAtomType("DU");
          }
      }
focal_method.class_method_signature: MMFF94AtomTypeMatcher.findMatchingAtomType(IAtomContainer atomContainer, IAtom atomInterface)
focal_method.full_signature: @Override public IAtomType findMatchingAtomType(IAtomContainer atomContainer, IAtom atomInterface)
focal_method.identifier: findMatchingAtomType
focal_method.invocations: getInstance getBuilder error getMessage debug debug getSymbol getProperty getAtomTypes getMaximumBondOrder getMaxBondOrder getAtomType getProperty getAtomType debug compile matcher getProperty matches getProperty getProperty equals getSphericalMatcher compile matcher getSphericalMatcher compile matcher matches getFlag matches getFlag getFlag getFlag compile getSphericalMatcher matcher matches equals getFlag equals getFlag equals compile getSphericalMatcher matcher matches compile getSphericalMatcher matcher matches compile getSphericalMatcher matcher getFlag compile getSphericalMatcher matcher matches getFlag matches matches compile getSphericalMatcher matcher getSphericalMatcher matches equals compile getSphericalMatcher matcher getSphericalMatcher matches getFlag compile getSphericalMatcher matcher getSphericalMatcher matches getFlag equals compile getSphericalMatcher matcher getSphericalMatcher matches getFlag equals equals getFlag equals getFlag equals equals compile getSphericalMatcher matcher matches compile getSphericalMatcher matcher matches equals compile getSphericalMatcher matcher matches equals getFlag equals compile getSphericalMatcher matcher getProperty matches debug getAtomType getAtomType
focal_method.modifiers: @Override public
focal_method.parameters: (IAtomContainer atomContainer, IAtom atomInterface)
focal_method.return: IAtomType
focal_method.signature: IAtomType findMatchingAtomType(IAtomContainer atomContainer, IAtom atomInterface)