/* $Revision$ $Author$ $Date$ * * Copyright (C) 1997-2007 Christoph Steinbeck <steinbeck@users.sf.net> * * Contact: cdk-devel@lists.sourceforge.net * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License * as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * All I ask is that proper credit is given for my work, which includes * - but is not limited to - adding the above copyright notice to the beginning * of your source code files, and to any copyright notice that you may distribute * with programs based on this work. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. */ package org.openscience.cdk; import org.openscience.cdk.annotations.TestClass; import org.openscience.cdk.interfaces.IBond; /** * An interface providing predefined values for a number of * constants used throughout the CDK. Classes using these constants should * <b>not</b> implement this interface, but use it like: * <pre> * IBond.Order singleBondOrder = CDKConstants.BONDORDER_SINGLE; * </pre> * * @cdk.module core * @cdk.githash * * @cdk.keyword bond order * @cdk.keyword stereochemistry */ @TestClass("org.openscience.cdk.CDKConstantsTest") public class CDKConstants { public final static Object UNSET = null; /** A bond of degree 1.0. */ public final static IBond.Order BONDORDER_SINGLE = IBond.Order.SINGLE; /** A bond of degree 2.0. */ public final static IBond.Order BONDORDER_DOUBLE = IBond.Order.DOUBLE; /** A bond of degree 3.0. */ public final static IBond.Order BONDORDER_TRIPLE = IBond.Order.TRIPLE; public final static IBond.Order BONDORDER_QUADRUPLE = IBond.Order.QUADRUPLE; /** A positive atom parity. */ public final static int STEREO_ATOM_PARITY_PLUS = 1; /** A negative atom parity. */ public final static int STEREO_ATOM_PARITY_MINUS = -1; /** A undefined atom parity. */ public final static int STEREO_ATOM_PARITY_UNDEFINED = 0; /** A undefined hybridization. */ public final static int HYBRIDIZATION_UNSET = 0; /** A geometry of neighboring atoms when an s orbital is hybridized * with one p orbital. */ public final static int HYBRIDIZATION_SP1 = 1; /** A geometry of neighboring atoms when an s orbital is hybridized * with two p orbitals. */ public final static int HYBRIDIZATION_SP2 = 2; /** A geometry of neighboring atoms when an s orbital is hybridized * with three p orbitals. */ public final static int HYBRIDIZATION_SP3 = 3; /** A geometry of neighboring atoms when an s orbital is hybridized * with three p orbitals with one d orbital. */ public final static int HYBRIDIZATION_SP3D1 = 4; /** A geometry of neighboring atoms when an s orbital is hybridized * with three p orbitals with two d orbitals. */ public final static int HYBRIDIZATION_SP3D2 = 5; /** A geometry of neighboring atoms when an s orbital is hybridized * with three p orbitals with three d orbitals. */ public final static int HYBRIDIZATION_SP3D3 = 6; /** A geometry of neighboring atoms when an s orbital is hybridized * with three p orbitals with four d orbitals. */ public final static int HYBRIDIZATION_SP3D4 = 7; /** A geometry of neighboring atoms when an s orbital is hybridized * with three p orbitals with five d orbitals. */ public final static int HYBRIDIZATION_SP3D5 = 8; /** * Carbon NMR shift constant for use as a key in the * IChemObject.physicalProperties hashtable. * @see org.openscience.cdk.ChemObject */ public final static String NMRSHIFT_CARBON = "carbon nmr shift"; /** Hydrogen NMR shift constant for use as a key in the * IChemObject.physicalProperties hashtable. * @see org.openscience.cdk.ChemObject */ public final static String NMRSHIFT_HYDROGEN = "hydrogen nmr shift"; /** Nitrogen NMR shift constant for use as a key in the * IChemObject.physicalProperties hashtable. * @see org.openscience.cdk.ChemObject */ public final static String NMRSHIFT_NITROGEN = "nitrogen nmr shift"; /** Phosphorus NMR shift constant for use as a key in the * IChemObject.physicalProperties hashtable. * @see org.openscience.cdk.ChemObject */ public final static String NMRSHIFT_PHOSPORUS = "phosphorus nmr shift"; /** Fluorine NMR shift constant for use as a key in the * IChemObject.physicalProperties hashtable. * @see org.openscience.cdk.ChemObject */ public final static String NMRSHIFT_FLUORINE = "fluorine nmr shift"; /** Deuterium NMR shift constant for use as a key in the * IChemObject.physicalProperties hashtable. * @see org.openscience.cdk.ChemObject */ public final static String NMRSHIFT_DEUTERIUM = "deuterium nmr shift"; /**************************************** * Some predefined flags - keep the * * numbers below 50 free for other * * purposes * ****************************************/ /** Flag that is set if the chemobject is placed (somewhere). */ public final static int ISPLACED = 0; /** Flag that is set when the chemobject is part of a ring. */ public final static int ISINRING = 1; /** Flag that is set when the chemobject is part of a ring. */ public final static int ISNOTINRING = 2; /** Flag that is set if a chemobject is part of an aliphatic chain. */ public final static int ISALIPHATIC = 3; /** Flag is set if chemobject has been visited. */ public final static int VISITED = 4; // Use in tree searches /** Flag is set if chemobject is part of an aromatic system. */ public final static int ISAROMATIC = 5; /** Flag is set if chemobject is part of a conjugated system. */ public final static int ISCONJUGATED = 6; /** Flag is set if a chemobject is mapped to another chemobject. * It is used for example in subgraph isomorphism search. */ public final static int MAPPED = 7; /** Sets to true if the atom is an hydrogen bond donor. */ public final static int IS_HYDROGENBOND_DONOR = 8; /** Sets to true if the atom is an hydrogen bond acceptor. */ public final static int IS_HYDROGENBOND_ACCEPTOR = 9; /** Flag is set if a chemobject has reactive center. * It is used for example in reaction. */ public static final int REACTIVE_CENTER = 10; /** Flag is set if an atom could be typed. */ public static final int IS_TYPEABLE = 11; /** Flag is set in JCP if an arrow indicating move * should be shown. */ public static final int SHOW_MOVE_ARRAY = 12; /** * Maximum flags array index. */ public final static int MAX_FLAG_INDEX = 13; /** * Flag used for JUnit testing the pointer functionality. */ public final static int DUMMY_POINTER = 1; /** * Maximum pointers array index. */ public final static int MAX_POINTER_INDEX = 1; /**************************************** * Some predefined property names for * * ChemObjects * ****************************************/ /** The title for a IChemObject. */ public static final String TITLE = "cdk:Title"; /** A remark for a IChemObject.*/ public static final String REMARK = "cdk:Remark"; /** A String comment. */ public static final String COMMENT = "cdk:Comment"; /** A List of names. */ public static final String NAMES = "cdk:Names"; /** A List of annotation remarks. */ public static final String ANNOTATIONS = "cdk:Annotations"; /** A description for a IChemObject. */ public static final String DESCRIPTION = "cdk:Description"; /**************************************** * Some predefined property names for * * Molecules * ****************************************/ /** The Daylight SMILES. */ public static final String SMILES = "cdk:SMILES"; /** The IUPAC International Chemical Identifier. */ public static final String INCHI = "cdk:InChI"; /** The Molecular Formula Identifier. */ public static final String FORMULA = "cdk:Formula"; /** The IUPAC compatible name generated with AutoNom. */ public static final String AUTONOMNAME = "cdk:AutonomName"; /** The Beilstein Registry Number. */ public static final String BEILSTEINRN = "cdk:BeilsteinRN"; /** The CAS Registry Number. */ public static final String CASRN = "cdk:CasRN"; /** A set of all rings computed for this molecule. */ public static final String ALL_RINGS = "cdk:AllRings"; /** A smallest set of smallest rings computed for this molecule. */ public static final String SMALLEST_RINGS = "cdk:SmallestRings"; /** The essential rings computed for this molecule. * The concept of Essential Rings is defined in * SSSRFinder */ public static final String ESSENTIAL_RINGS = "cdk:EssentialRings"; /** The relevant rings computed for this molecule. * The concept of relevant Rings is defined in * SSSRFinder */ public static final String RELEVANT_RINGS = "cdk:RelevantRings"; /**************************************** * Some predefined property names for * * Atoms * ****************************************/ /** * This property will contain an ArrayList of Integers. Each * element of the list indicates the size of the ring the given * atom belongs to (if it is a ring atom at all). */ public static final String RING_SIZES = "cdk:RingSizes"; /** * This property indicates how many ring bonds are connected to * the given atom. */ public static final String RING_CONNECTIONS = "cdk:RingConnections"; /* *This property indicate how many bond are present on the atom. * */ public static final String TOTAL_CONNECTIONS = "cdk:TotalConnections"; /* *Hydrogen count * */ public static final String TOTAL_H_COUNT = "cdk:TotalHydrogenCount"; /** The Isotropic Shielding, usually calculated by * a quantum chemistry program like Gaussian. * This is a property used for calculating NMR chemical * shifts by subtracting the value from the * isotropic shielding value of a standard (e.g. TMS). */ public static final String ISOTROPIC_SHIELDING = "cdk:IsotropicShielding"; /** * A property to indicate RestH being true or false. RestH is a term * used in RGroup queries: "if this property is applied ('on'), sites labeled * with Rgroup rrr may only be substituted with a member of the Rgroup or with H" */ public static final String REST_H = "cdk:RestH"; /**************************************** * Some predefined property names for * * AtomTypes * ****************************************/ /** Used as property key for indicating the ring size of a certain atom type. */ public static final String PART_OF_RING_OF_SIZE = "cdk:Part of ring of size"; /** Used as property key for indicating the chemical group of a certain atom type. */ public static final String CHEMICAL_GROUP_CONSTANT = "cdk:Chemical Group"; /** Used as property key for indicating the HOSE code for a certain atom type. */ public static final String SPHERICAL_MATCHER = "cdk:HOSE code spherical matcher"; /** Used as property key for indicating the HOSE code for a certain atom type. */ public static final String PI_BOND_COUNT = "cdk:Pi Bond Count"; /** Used as property key for indicating the HOSE code for a certain atom type. */ public static final String LONE_PAIR_COUNT = "cdk:Lone Pair Count"; }