/** * Clones an RGroupList * * @param original * @return */ private static RGroupList makeClone(RGroupList original) { RGroupList clone = new RGroupList(original.getRGroupNumber()); try { clone.setOccurrence(original.getOccurrence()); clone.setRequiredRGroupNumber(original.getRequiredRGroupNumber()); clone.setRestH(original.isRestH()); List<RGroup> rgpList = new ArrayList<RGroup>(); for (RGroup r : original.getRGroups()) { rgpList.add(r); } clone.setRGroups(rgpList); } catch (CDKException e) { e.printStackTrace(); } return clone; } }
if (userOccurrenceText.trim().equals("") || !RGroupList.isValidOccurrenceSyntax(userOccurrenceText)) { throw new RuntimeException (GT.get("Invalid occurrence specified for {0}", "R" + r)); String userOccurrenceText=occurrenceField.getText(); try { rgrpList.setOccurrence(userOccurrenceText); } catch (CDKException e) { String restHString= (String) (restHBox.getSelectedItem()); if (restHString.equals(GT.get("True"))) rgrpList.setRestH(true); else rgrpList.setRestH(false); String ifThenR= (String) (ifThenBox.getSelectedItem()); if (ifThenR.equals(GT.get("None"))) rgrpList.setRequiredRGroupNumber(0); else { int userRnumInput = new Integer (ifThenR.substring(1)); rgrpList.setRequiredRGroupNumber(userRnumInput);
/** * Constructor with attributes given. * * @param rGroupNumber R-Group number * @param restH restH * @param occurrence occurrence * @param requiredRGroupNumber number of other R-Group required * @throws CDKException */ public RGroupList(int rGroupNumber, boolean restH, String occurrence, int requiredRGroupNumber) throws CDKException { setRGroupNumber(rGroupNumber); setRestH(restH); setOccurrence(occurrence); setRequiredRGroupNumber(requiredRGroupNumber); }
@Test(expected = CDKException.class) public void testOccurrenceNumericValues() throws CDKException { RGroupList rgrLst = new RGroupList(1); rgrLst.setOccurrence("a,3,10"); }
int restH = rgList.isRestH() ? 1 : 0; String logLine = "M LOG" + MDLV2000Writer.formatMDLInt(1, 3) + MDLV2000Writer.formatMDLInt(rgrpNum, 4) + MDLV2000Writer.formatMDLInt(rgList.getRequiredRGroupNumber(), 4) + MDLV2000Writer.formatMDLInt(restH, 4) + " " + rgList.getOccurrence(); rootBlock.append(logLine).append(LSEP); List<RGroup> rgrpList = rGroupQuery.getRGroupDefinitions().get(rgrpNum).getRGroups(); if (rgrpList != null && rgrpList.size() != 0) { rgpBlock.append("$RGP").append(LSEP);;
if (RGroupQuery.isValidRgroupQueryLabel(rGroup.getLabel())) { int rgroupNum = Integer.valueOf(rGroup.getLabel().substring(1)); RGroupList rgroupList = new RGroupList(rgroupNum); if (!rGroupDefinitions.containsKey(rgroupNum)) { logger.info("Define Rgroup R" + rgroupNum); RGroupLogic logic = logicDefinitions.get(rgroupNum); if (logic != null) { rgroupList.setRestH(logic.restH); rgroupList.setOccurrence(logic.occurence); rgroupList.setRequiredRGroupNumber(logic.rgoupNumberRequired); } else { rgroupList.setRestH(false); rgroupList.setOccurrence(">0"); rgroupList.setRequiredRGroupNumber(0); rgroupList.setRGroups(new ArrayList<RGroup>()); rGroupDefinitions.put(rgroupNum, rgroupList); throw new CDKException("R" + rgroupNum + " not defined but referenced in $RGP."); } else { rList.getRGroups().add(rGroup);
@Override public List<IAtomContainer> getSubstituents() { List<IAtomContainer> substitutes = new ArrayList<IAtomContainer>(); for (Integer r : rGroupDefinitions.keySet()) { for (RGroup rgrp : rGroupDefinitions.get(r).getRGroups()) { IAtomContainer subst = rgrp.getGroup(); if (subst != null) substitutes.add(subst); } } return substitutes; }
@Test public void testOccurrenceNull() throws CDKException { RGroupList rgrLst = new RGroupList(1); rgrLst.setOccurrence(null); Assert.assertEquals(rgrLst.getOccurrence(), RGroupList.DEFAULT_OCCURRENCE); }
public void setChemObject(IChemObject object) { if (object instanceof IRGroupQuery) { source = object; IRGroupQuery rgroupQuery = (IRGroupQuery)source; for (int i=0; i< rNumbers.size(); i++) { int r = rNumbers.get(i); JPanel rgrpPanel = panels.get(i); RGroupList rgrpList = rgroupQuery.getRGroupDefinitions().get(r); JTextField occurrenceField = (JTextField) (rgrpPanel.getComponent(1)); String occ=rgrpList.getOccurrence(); occurrenceField.setText(occ); JComboBox<?> restHBox = (JComboBox<?>) (rgrpPanel.getComponent(3)); boolean restH=rgrpList.isRestH(); String restHString= restH? GT.get("True"): GT.get("False"); restHBox.setSelectedItem(restHString); JComboBox<?> ifThenBox = (JComboBox<?>) (rgrpPanel.getComponent(5)); int ifThenR = rgrpList.getRequiredRGroupNumber(); String ifThenRString= ifThenR==0?GT.get("None"):"R"+ifThenR; ifThenBox.setSelectedItem(ifThenRString); } } else { throw new IllegalArgumentException("Argument must be a IRGroupQuery"); } }
Assert.assertEquals(allrGroupQueryAtoms.size(), 1); RGroupList rList = rGroupQuery.getRGroupDefinitions().get(1); Assert.assertEquals(rList.getRGroups().size(), 2); Assert.assertEquals(rList.getRequiredRGroupNumber(), 0); Assert.assertFalse(rList.isRestH()); Assert.assertEquals(rGroupQuery.getRootAttachmentPoints().size(), 0); Assert.assertTrue(rGroupQuery.areSubstituentsDefined()); List<RGroup> rGroups = rList.getRGroups(); Assert.assertEquals(rGroups.get(0).getFirstAttachmentPoint(), null); Assert.assertEquals(rGroups.get(0).getSecondAttachmentPoint(), null);
apoLoop: for (Iterator<Integer> rnumItr=rGroupHandler.getrGroupQuery().getRGroupDefinitions().keySet().iterator(); rnumItr.hasNext();) { for (RGroup rgrp: rGroupHandler.getrGroupQuery().getRGroupDefinitions().get(rnumItr.next()).getRGroups()) { if(rgrp.getGroup().contains(apoAtom)) { existingRGroupApo= new HashMap <RGroup,Map<Integer,IAtom>>(); RGroupList rList = new RGroupList(rNum); rList.setRGroups(new ArrayList<RGroup>()); rgrpQuery.getRGroupDefinitions().put(rNum, rList); existingRgroupLists.put(rgrpNum, makeClone(rgrpList)); List<RGroup> cleanList = new ArrayList<RGroup>(); for (int j=0; j<rgrpList.getRGroups().size(); j++){ RGroup subst= rgrpList.getRGroups().get(j); boolean remove=false; removeCheck: rgrpList.setRGroups(cleanList); rgrpQuery.getRGroupDefinitions().get(rNum).getRGroups().add(rgrp);
Assert.assertEquals(val_1, 1); RGroupList rList = rGroupQuery.getRGroupDefinitions().get(val_1); Assert.assertEquals(rList.getOccurrence(), "0,1-3"); List<RGroup> rGroups = rList.getRGroups(); Assert.assertEquals(rGroups.get(0).getFirstAttachmentPoint().getSymbol(), "N"); Assert.assertEquals(rGroups.get(1).getFirstAttachmentPoint().getSymbol(), "O");
if (!allZeroArray(distributions.get(inner))) { RGroupList rgrpList = rGroupDefinitions.get(rgroupNum2); if (rgrpList.getRequiredRGroupNumber() == rgroupNum) { logger.info(" Rejecting >> all 0 for " + rgroupNum + " but requirement found from " + rgrpList.getRGroupNumber()); return false;
int r = rGroupNumItr.next(); rGroupNumbers.add(r); List<Integer> validOcc = rGroupDefinitions.get(r).matchOccurence(getRgroupQueryAtoms(r).size()); if (validOcc.size() == 0) { throw new CDKException("Occurrence '" + rGroupDefinitions.get(r).getOccurrence() + "' defined for Rgroup " + r + " results in no subsititute options for this R-group.");
for (IAtom atInBond : r0Bond.atoms()) { atInBond.setProperty(CDKConstants.REST_H, this.getRGroupDefinitions().get(rNum) .isRestH());
/** * Picky setter for occurrence fields. Validates user input to be conform * the (Symyx) specification. * @param occurrence occurence value */ public void setOccurrence(String occurrence) throws CDKException { if (occurrence == null || occurrence.equals("")) { occurrence = ">0"; //revert to default } else { occurrence = occurrence.trim().replaceAll(" ", ""); if (isValidOccurrenceSyntax(occurrence)) { this.occurrence = occurrence; } else throw new CDKException("Invalid occurence line: " + occurrence); } }
Assert.assertEquals(rList.getRGroups().size(), 2); List<RGroup> rGroups = rList.getRGroups(); Assert.assertEquals(rGroups.get(0).getSecondAttachmentPoint().getSymbol(), "O"); Assert.assertEquals(rGroups.get(1).getSecondAttachmentPoint().getSymbol(), "O"); Assert.assertFalse(rList.isRestH()); Assert.assertEquals(rList.getRGroups().size(), 2); Assert.assertEquals(rList.getOccurrence(), "0,2"); Assert.assertEquals(rList.getRequiredRGroupNumber(), 11); Assert.assertFalse(rList.isRestH()); Assert.assertEquals(rList.getRGroups().size(), 1); Assert.assertEquals(rList.getRequiredRGroupNumber(), 0); Assert.assertTrue(rList.isRestH()); List<RGroup> rGroups = rList.getRGroups(); Assert.assertEquals(rGroups.get(0).getFirstAttachmentPoint().getSymbol(), "Pt"); Assert.assertEquals(rGroups.get(0).getSecondAttachmentPoint(), null);
@Override public int getAtomContainerCount() { int retVal = 0; if (this.rootStructure != null) retVal++; for (Integer r : rGroupDefinitions.keySet()) { for (RGroup rgrp : rGroupDefinitions.get(r).getRGroups()) { if (rgrp.getGroup() != null) { retVal++; } } } return retVal; }
@Test public void testOccurrenceCorrect() throws CDKException { RGroupList rgrLst = new RGroupList(1); rgrLst.setOccurrence("1, 3-7, 9, >11"); Assert.assertEquals(rgrLst.getOccurrence(), "1,3-7,9,>11"); }
@Test(expected = CDKException.class) public void testOccurrenceNotSmallerThanZero() throws CDKException { RGroupList rgrLst = new RGroupList(1); rgrLst.setOccurrence("<0"); }