model.setCrystal(crystal); seq.addChemModel(model); file.addChemSequence(seq);
currentChemModel.setCrystal((ICrystal) currentMolecule); currentChemSequence.addChemModel(currentChemModel); } else if (currentMolecule instanceof IAtomContainer) {
model.setCrystal(crystal); seq.addChemModel(model); file.addChemSequence(seq);
@Override public void endElement(CMLStack xpath, String uri, String local, String raw) { String name = raw; // OLD +++++++++++++++++++++++++++++++++++++++++++++ if (name.equals("list") && connectionTable && !isBond) { logger.debug("End Connection Table"); connectionTable = false; // OLD +++++++++++++++++++++++++++++++++++++++++++++ } else if (name.equals("molecule")) { storeData(); if (xpath.size() == 1) { // cdo.endObject("Molecule"); if (currentMolecule instanceof IAtomContainer) { logger.debug("Adding molecule to set"); currentMoleculeSet.addAtomContainer(currentMolecule); logger.debug("#mols in set: " + currentMoleculeSet.getAtomContainerCount()); } else if (currentMolecule instanceof ICrystal) { logger.debug("Adding crystal to chemModel"); currentChemModel.setCrystal((ICrystal) currentMolecule); currentChemSequence.addChemModel(currentChemModel); } } } isELSYM = false; isBond = false; }
chemModel.setCrystal(crystal); chemSequence.addChemModel(chemModel);
@Override public void endElement(CMLStack xpath, String uri, String local, String raw) { String name = raw; // OLD +++++++++++++++++++++++++++++++++++++++++++++ if (name.equals("list") && connectionTable && !isBond) { logger.debug("End Connection Table"); connectionTable = false; // OLD +++++++++++++++++++++++++++++++++++++++++++++ } else if (name.equals("molecule")) { storeData(); if (xpath.size() == 1) { // cdo.endObject("Molecule"); if (currentMolecule instanceof ICrystal) { logger.debug("Adding crystal to chemModel"); currentChemModel.setCrystal((ICrystal) currentMolecule); currentChemSequence.addChemModel(currentChemModel); } else { logger.debug("Adding molecule to set"); currentMoleculeSet.addAtomContainer(currentMolecule); logger.debug("#mols in set: " + currentMoleculeSet.getAtomContainerCount()); } } } isELSYM = false; isBond = false; }
chemModel.setCrystal(crystal); chemSequence.addChemModel(chemModel);
/** * Read the ShelX from input. Each ShelX document is expected to contain * one crystal structure. * * @return a ChemFile with the coordinates, charges, vectors, etc. */ private IChemFile readChemFile(IChemFile file) throws IOException { IChemSequence seq = file.getBuilder().newInstance(IChemSequence.class); IChemModel model = file.getBuilder().newInstance(IChemModel.class); ICrystal crystal = readCrystal(file.getBuilder().newInstance(ICrystal.class)); model.setCrystal(crystal); seq.addChemModel(model); file.addChemSequence(seq); return file; }
/** * Read the ShelX from input. Each ShelX document is expected to contain * one crystal structure. * * @return a ChemFile with the coordinates, charges, vectors, etc. */ private IChemFile readChemFile(IChemFile file) throws IOException { IChemSequence seq = file.getBuilder().newInstance(IChemSequence.class); IChemModel model = file.getBuilder().newInstance(IChemModel.class); ICrystal crystal = readCrystal(file.getBuilder().newInstance(ICrystal.class)); model.setCrystal(crystal); seq.addChemModel(model); file.addChemSequence(seq); return file; }
model.setCrystal(crystal); seq.addChemModel(model); } else {
@Test public void testIsEmpty_Crystal() { IChemModel model = (IChemModel) newChemObject(); IChemObjectBuilder builder = model.getBuilder(); ICrystal crystal = builder.newInstance(ICrystal.class); model.setCrystal(crystal); Assert.assertTrue(model.isEmpty()); crystal.addAtom(builder.newInstance(IAtom.class, "C")); Assert.assertFalse(model.isEmpty()); model.setCrystal(null); Assert.assertTrue(model.isEmpty()); }
@Test public void testSetCrystal_ICrystal() { IChemModel chemModel = (IChemModel) newChemObject(); ICrystal crystal = chemModel.getBuilder().newInstance(ICrystal.class); chemModel.setCrystal(crystal); Assert.assertEquals(crystal, chemModel.getCrystal()); }
@Test public void testStateChanged_ButNotAfterRemoval_Crystal() { ChemObjectListenerImpl listener = new ChemObjectListenerImpl(); IChemModel chemObject = (IChemModel) newChemObject(); chemObject.addListener(listener); ICrystal crystal = chemObject.getBuilder().newInstance(ICrystal.class); chemObject.setCrystal(crystal); Assert.assertTrue(listener.changed); // remove the set from the IChemModel chemObject.setCrystal(null); // reset the listener listener.reset(); Assert.assertFalse(listener.changed); // changing the set must *not* trigger a change event in the IChemModel crystal.add(chemObject.getBuilder().newInstance(IAtomContainer.class)); Assert.assertFalse(listener.changed); }
@Test @Override public void testStateChanged_ButNotAfterRemoval_Crystal() { ChemObjectListener listener = new ChemObjectListener(); IChemModel chemObject = (IChemModel) newChemObject(); chemObject.addListener(listener); ICrystal crystal = chemObject.getBuilder().newInstance(ICrystal.class); chemObject.setCrystal(crystal); Assert.assertFalse(listener.getChanged()); // remove the set from the IChemModel chemObject.setCrystal(null); // reset the listener listener.reset(); Assert.assertFalse(listener.getChanged()); // changing the set must *not* trigger a change event in the IChemModel crystal.add(chemObject.getBuilder().newInstance(IAtomContainer.class)); Assert.assertFalse(listener.getChanged()); }
chemModel.setCrystal(crystal);
@Test public void testClone_Crystal() throws Exception { IChemModel model = (IChemModel) newChemObject(); IChemModel clone = (IChemModel) model.clone(); Assert.assertNull(clone.getCrystal()); model.setCrystal(model.getBuilder().newInstance(ICrystal.class)); clone = (IChemModel) model.clone(); Assert.assertNotNull(clone.getCrystal()); Assert.assertNotSame(model.getCrystal(), clone.getCrystal()); }
@Test public void testStateChanged_EventPropagation_Crystal() { ChemObjectListenerImpl listener = new ChemObjectListenerImpl(); IChemModel chemObject = (IChemModel) newChemObject(); chemObject.addListener(listener); ICrystal crystal = chemObject.getBuilder().newInstance(ICrystal.class); chemObject.setCrystal(crystal); Assert.assertTrue(listener.changed); // reset the listener listener.reset(); Assert.assertFalse(listener.changed); // changing the set should trigger a change event in the IChemModel crystal.add(chemObject.getBuilder().newInstance(IAtomContainer.class)); Assert.assertTrue(listener.changed); }
@Test @Override public void testStateChanged_EventPropagation_Crystal() { ChemObjectListener listener = new ChemObjectListener(); IChemModel chemObject = (IChemModel) newChemObject(); chemObject.addListener(listener); ICrystal crystal = chemObject.getBuilder().newInstance(ICrystal.class); chemObject.setCrystal(crystal); Assert.assertFalse(listener.getChanged()); // reset the listener listener.reset(); Assert.assertFalse(listener.getChanged()); // changing the set should trigger a change event in the IChemModel crystal.add(chemObject.getBuilder().newInstance(IAtomContainer.class)); Assert.assertFalse(listener.getChanged()); }
@Test @Override public void testStateChanged_IChemObjectChangeEvent() { ChemObjectListenerImpl listener = new ChemObjectListenerImpl(); IChemModel chemObject = (IChemModel) newChemObject(); chemObject.addListener(listener); chemObject.setMoleculeSet(chemObject.getBuilder().newInstance(IAtomContainerSet.class)); Assert.assertTrue(listener.changed); listener.reset(); Assert.assertFalse(listener.changed); chemObject.setReactionSet(chemObject.getBuilder().newInstance(IReactionSet.class)); Assert.assertTrue(listener.changed); listener.reset(); Assert.assertFalse(listener.changed); chemObject.setCrystal(chemObject.getBuilder().newInstance(ICrystal.class)); Assert.assertTrue(listener.changed); listener.reset(); Assert.assertFalse(listener.changed); chemObject.setRingSet(chemObject.getBuilder().newInstance(IRingSet.class)); Assert.assertTrue(listener.changed); }
mol.addAtom(atom); ICrystal cry = new Crystal(mol); model3.setCrystal(cry); Assert.assertFalse(model3.isEmpty()); mol.removeAtomOnly(atom); Assert.assertFalse(model3.isEmpty()); model3.setCrystal(null); Assert.assertTrue(model3.isEmpty());