/* $RCSfile$
* $Author$
* $Date$
* $Revision$
*
* Copyright (C) 2005-2007 Egon Willighagen <egonw@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.
*
* 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.formula.AdductFormula;
import org.openscience.cdk.formula.MolecularFormula;
import org.openscience.cdk.formula.MolecularFormulaSet;
import org.openscience.cdk.interfaces.*;
import org.openscience.cdk.protein.data.PDBAtom;
import org.openscience.cdk.protein.data.PDBMonomer;
import org.openscience.cdk.protein.data.PDBPolymer;
import org.openscience.cdk.protein.data.PDBStructure;
import javax.vecmath.Point2d;
import javax.vecmath.Point3d;
/**
* A helper class to instantiate a IChemObject for a specific implementation.
*
* @author egonw
* @cdk.module data
* @cdk.githash
*/
public class DefaultChemObjectBuilder implements IChemObjectBuilder {
private static DefaultChemObjectBuilder instance = null;
private DefaultChemObjectBuilder() {}
public static DefaultChemObjectBuilder getInstance() {
if (instance == null) {
instance = new DefaultChemObjectBuilder();
}
return instance;
}
public IAminoAcid newAminoAcid() {
return new AminoAcid();
}
public IAtom newAtom() {
return new Atom();
}
public IAtom newAtom(String elementSymbol) {
return new Atom(elementSymbol);
}
public IAtom newAtom(String elementSymbol, javax.vecmath.Point2d point2d) {
return new Atom(elementSymbol, point2d);
}
public IAtom newAtom(String elementSymbol, javax.vecmath.Point3d point3d) {
return new Atom(elementSymbol, point3d);
}
public IAtomContainer newAtomContainer() {
return new AtomContainer();
}
public IAtomContainer newAtomContainer(int atomCount, int bondCount, int lonePairCount, int singleElectronCount) {
return new AtomContainer(atomCount, bondCount, lonePairCount, singleElectronCount);
}
public IAtomContainer newAtomContainer(IAtomContainer container) {
return new AtomContainer(container);
}
public IAtomParity newAtomParity(IAtom centralAtom, IAtom first, IAtom second,
IAtom third, IAtom fourth, int parity) {
return new AtomParity(centralAtom, first, second, third, fourth, parity);
}
public IAtomType newAtomType(String elementSymbol) {
return new AtomType(elementSymbol);
}
public IAtomType newAtomType(String identifier, String elementSymbol) {
return new AtomType(identifier, elementSymbol);
}
public IBioPolymer newBioPolymer(){
return new BioPolymer();
}
public IBond newBond() {
return new Bond();
}
public IBond newBond(IAtom atom1, IAtom atom2) {
return new Bond(atom1, atom2);
}
public IBond newBond(IAtom atom1, IAtom atom2, IBond.Order order) {
return new Bond(atom1, atom2, order);
}
public IBond newBond(IAtom atom1, IAtom atom2, IBond.Order order,
IBond.Stereo stereo) {
return new Bond(atom1, atom2, order, stereo);
}
public IBond newBond(IAtom[] atoms) {
return new Bond(atoms);
}
public IBond newBond(IAtom[] atoms, IBond.Order order) {
return new Bond(atoms, order);
}
public IChemFile newChemFile() {
return new ChemFile();
}
public IChemModel newChemModel() {
return new ChemModel();
}
public IChemObject newChemObject() {
return new ChemObject();
}
public IChemSequence newChemSequence() {
return new ChemSequence();
}
public ICrystal newCrystal() {
return new Crystal();
}
public ICrystal newCrystal(IAtomContainer container) {
return new Crystal(container);
}
public IElectronContainer newElectronContainer() {
return new ElectronContainer();
}
public IElement newElement() {
return new Element();
}
public IElement newElement(String symbol) {
return new Element(symbol);
}
public IElement newElement(String symbol, int atomicNumber) {
return new Element(symbol, atomicNumber);
}
public IIsotope newIsotope(String elementSymbol) {
return new Isotope(elementSymbol);
}
public IIsotope newIsotope(int atomicNumber, String elementSymbol,
int massNumber, double exactMass, double abundance) {
return new Isotope(atomicNumber, elementSymbol, massNumber, exactMass, abundance);
}
public IIsotope newIsotope(int atomicNumber, String elementSymbol,
double exactMass, double abundance) {
return new Isotope(atomicNumber, elementSymbol, exactMass, abundance);
}
public IIsotope newIsotope(String elementSymbol, int massNumber) {
return new Isotope(elementSymbol, massNumber);
}
public ILonePair newLonePair() {
return new LonePair();
}
public ILonePair newLonePair(IAtom atom) {
return new LonePair(atom);
}
public IMapping newMapping(IChemObject objectOne, IChemObject objectTwo) {
return new Mapping(objectOne, objectTwo);
}
public IMolecule newMolecule() {
return new Molecule();
}
public IMolecule newMolecule(int atomCount, int electronContainerCount, int lonePairCount, int singleElectronCount) {
return new Molecule(atomCount, electronContainerCount, lonePairCount, singleElectronCount);
}
public IMolecule newMolecule(IAtomContainer container) {
return new Molecule(container);
}
public IMonomer newMonomer () {
return new Monomer();
}
public IPolymer newPolymer() {
return new Polymer();
}
public IPDBAtom newPDBAtom(IElement element){
return new PDBAtom(element);
}
public IPDBAtom newPDBAtom(String symbol){
return new PDBAtom(symbol);
}
public IPDBAtom newPDBAtom(String symbol, Point3d coordinate){
return new PDBAtom(symbol, coordinate);
}
public IPDBPolymer newPDBPolymer() {
return new PDBPolymer();
}
public IPDBStructure newPDBStructure() {
return new PDBStructure();
}
public IPDBMonomer newPDBMonomer() {
return new PDBMonomer();
}
public IReaction newReaction() {
return new Reaction();
}
public IRing newRing() {
return new Ring();
}
public IRing newRing(IAtomContainer container) {
return new Ring(container);
}
public IRing newRing(int ringSize, String elementSymbol) {
return new Ring(ringSize, elementSymbol);
}
public IRing newRing(int ringSize) {
return new Ring(ringSize);
}
public IRingSet newRingSet() {
return new RingSet();
}
public IAtomContainerSet newAtomContainerSet() {
return new AtomContainerSet();
}
public IMoleculeSet newMoleculeSet() {
return new MoleculeSet();
}
public IReactionSet newReactionSet() {
return new ReactionSet();
}
public IReactionScheme newReactionScheme() {
return new ReactionScheme();
}
public ISingleElectron newSingleElectron() {
return new SingleElectron();
}
public ISingleElectron newSingleElectron(IAtom atom) {
return new SingleElectron(atom);
}
public IStrand newStrand() {
return new Strand();
}
public IPseudoAtom newPseudoAtom() {
return new PseudoAtom();
}
public IPseudoAtom newPseudoAtom(String label) {
return new PseudoAtom(label);
}
public IPseudoAtom newPseudoAtom(IAtom atom) {
return new PseudoAtom(atom);
}
public IPseudoAtom newPseudoAtom(String label, Point3d point3d) {
return new PseudoAtom(label, point3d);
}
public IPseudoAtom newPseudoAtom(String label, Point2d point2d) {
return new PseudoAtom(label, point2d);
}
public IAtom newAtom(IElement element) {
return new Atom(element);
}
public IAtomType newAtomType(IElement element) {
return new AtomType(element);
}
public IChemObject newChemObject(IChemObject object) {
return new ChemObject(object);
}
public IElement newElement(IElement element) {
return new Element(element);
}
public IIsotope newIsotope(IElement element) {
return new Isotope(element);
}
public IPseudoAtom newPseudoAtom(IElement element) {
return new PseudoAtom(element);
}
public IFragmentAtom newFragmentAtom() {
return new FragmentAtom();
}
public IAdductFormula newAdductFormula() {
return new AdductFormula();
}
public IMolecularFormula newMolecularFormula() {
return new MolecularFormula();
}
public IMolecularFormulaSet newMolecularFormulaSet() {
return new MolecularFormulaSet();
}
public IAdductFormula newAdductFormula(IMolecularFormula formula) {
return new AdductFormula(formula);
}
public IMolecularFormulaSet newMolecularFormulaSet(IMolecularFormula formula) {
return new MolecularFormulaSet(formula);
}
}