Hi
It seems when creating CDK cells already missing rows (and maybe also failed conversions) are removed.
In my implementation, if I have a missing cell come in I have a missing cell go out and missing cells for the expected generated values.
The CDK Value render is falling over when the IAtomContainer is null resulting in the output table not being rendered correctly.
I believe the CDKValueRender#setAtomContainer method should be:
/**
* Sets a new object to be rendered.
*
* @param con
* the new molecule to be rendered (null
is ok)
*/
protected void setAtomContainer(final IAtomContainer con)
{
m_mol = con;
if (m_mol != null)
{
try
{
LayoutHelper.adjustStereo(m_mol);
} catch (IllegalArgumentException exception)
{
m_mol = con;
}
switch (numbering)
{
case SEQUENTIAL:
int i = 1;
for (IAtom atom : con.atoms())
{
String label = Integer.toString(i++);
atom.setProperty(StandardGenerator.ANNOTATION_LABEL, label);
}
break;
case CANONICAL:
for (IAtom atom : con.atoms())
{
String label = atom.getID();
atom.setProperty(StandardGenerator.ANNOTATION_LABEL, label);
}
break;
case NONE:
break;
}
}
}
With the switch inside the if (m_mol != null) block. Otherwise the con.atoms() throws a null pointer exception.
Making the change as posted above gives a correctly rendered output table.
Cheers
Sam