Move Elements from standard to core.

Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
NaturalElement can and should be package-private.

Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Enumeration of chemical elements - avoids the slow startup of PeriodicTable.

Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
In future the enumeration could implement ‘IElement’ directly but this isn’t possible due to IChemObject needing to be cloneable. For now this is a work around - it does mean there is a Carbon and a CARBON which are different types but it’s a step in the right direction.

Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Allow Ununquadium and Ununhexium to resolve to Flerovium and Livermorium.

Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
IUPAC element naming with alternative spelling resolution.

Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Static utilise should be public.

Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Periodic table now delegates to the new enumeration.

Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
All package-private classes are no longer useful and can be safely removed (there were not exposed in the public API).

Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
The files may still be useful for reference but do need to be bundled with ‘cdk-core’.

Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Minor documentation update and formatting - we could also deprecate this class but for now it is used quite widely.

Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
A null string is an unknown element.

Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
An unknown element now has atomic number 0 - note this was previously the case when the symbol was ‘R’ but was null otherwise. Now all unknown elements have an atomic number of 0.

Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Periodic table now never returns null - this condition isn’t right ‘[Cd]’ and ‘*’ have the same fingerprint because ‘0’ = 48 (atomic number). There are however tests depending on the correct bits being set so not sure if it’s easy to change.

Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Convert implicit hydrogens to explicit in tetrahedral elements.

Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Minor cleanup and comments on removeHydrogens().

Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Use org/cpy to refer to the two structures.

Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Remove hydrogens in stereoelements.

Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Rather than blindly remove hydrogens we now only remove hydrogens we can accurately represent as implicit. Previously with molecular hydrogen an empty structure was returned - molecular hydrogen is now preserved. This makes more sense as we can then convert to/from explicit hydrogen without losing atoms - an empty structure definitely doesn’t represent molecular hydrogen and so ‘add explicit hydrogens’ would not put back in the correct number of atoms.

Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>
Updating other hydrogen removal methods to check if the hydrogen can actually be implicit. Also the removeNonChiralHydrogens now also checks double-bond stereo chemistry.

Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>