chemaxon.struc
Class Sgroup

java.lang.Object
  extended bychemaxon.struc.Sgroup
All Implemented Interfaces:
java.io.Serializable
Direct Known Subclasses:
MultipleSgroup, SuperatomSgroup

public class Sgroup
extends java.lang.Object
implements java.io.Serializable

S-group.

Since:
3.0
Version:
3.3, 12/07/2003
Author:
Peter Csizmadia
See Also:
Serialized Form

Field Summary
static int SCN_EITHER_UNKNOWN
          Either unknown S-group connectivity.
static int SCN_HEAD_TO_HEAD
          Head-to-head S-group connectivity.
static int SCN_HEAD_TO_TAIL
          Head-to-tail S-group connectivity.
protected  SelectionMolecule sgroupGraph
          The S-group's internal structure.
protected  int sgroupType
          The S-group type.
static int SST_ALTERNATING
          Alternating polymer S-group subtype.
static int SST_BLOCK
          Block polymer S-group subtype.
static int SST_RANDOM
          Random polymer S-group subtype.
static int ST_ANY
          Any polymer S-group type.
static int ST_COPOLYMER
          Copolymer S-group type.
static int ST_CROSSLINK
          Crosslink S-group type.
static int ST_DATA
          Data S-group type.
static int ST_FORMULATION
          Formulation S-group type.
static int ST_GENERIC
          Generic S-group type.
static int ST_MER
          Mer S-group type.
static int ST_MIXTURE
          Mixture S-group type.
static int ST_MODIFICATION
          Modification S-group type.
static int ST_MONOMER
          Monomer S-group type.
static int ST_MULTIPLE
          Multiple group S-group type.
static int ST_SRU
          SRU S-group type.
static int ST_SUPERATOM
          Superatom S-group type.
 
Constructor Summary
Sgroup(Molecule parent, int t)
          Creates an S-group with the specified parent and type.
 
Method Summary
 void add(MolAtom a)
          Adds a new atom to the S-group.
 SelectionMolecule cloneStructure()
          Gets the clone of the structure stored.
protected  void copy(Sgroup sg2, Molecule m)
          Make a copy of this S-group.
 int countAllAtoms()
          Counts the total number of atoms recursively.
 Molecule createMolecule()
          Creates a molecule object that contains only this group.
 MolBond[] findCrossingBonds()
          Finds the crossing bonds.
 MolAtom getAtom(int i)
          Gets an atom in the S-group.
 MolAtom[] getAtomArray()
          Gets the array of atoms in the S-group.
 int getAtomCount()
          Gets the number of atoms in the S-group.
 int getConnectivity()
          Gets S-group connectivity.
 MolAtom[] getCrossingAtoms(MolBond[] xbonds)
          Gets the atoms that have crossing bonds.
 Molecule getParentMolecule()
          Gets the parent molecule.
 SelectionMolecule getSgroupGraph()
          Gets the molecule graph.
 java.lang.String getSubscript()
          Gets the subscript for non-superatom S-groups.
 int getSubType()
          Gets polymer S-group subtype.
 java.lang.String getSuperscript()
          Gets the superscript for non-superatom S-groups.
 int getType()
          Gets S-group type.
 boolean hasBrackets()
          Checks if brackets should be painted or not.
 int indexOf(MolAtom a)
          Gets the atom index in the S-group graph.
 boolean isEmpty()
          Is it an empty S-group?
 Sgroup newInstance()
          Gets a new Sgroup instance.
 void removeAtom(MolAtom a)
          Removes an atom from the S-group.
protected  void removeBond(MolBond b)
          Removes a bond from the S-group.
 void removeEdges()
          Removes the edge references.
protected static void removeGroupedAtom(Molecule m, MolAtom a, MolBond[] v)
          Removes an atom from the molecule and remove its specified bonds.
 void setAtom(int i, MolAtom a)
          Sets the specified atom in the S-group graph.
 void setConnectivity(int c)
          Sets S-group connectivity.
protected  void setParentMolecule(Molecule p)
          Sets the parent molecule.
 void setSgroupGraph(SelectionMolecule smol)
          Sets the molecule graph.
 void setSubscript(java.lang.String s)
          Sets the subscript for non-superatom S-groups.
 void setSubType(int t)
          Sets polymer S-group subtype.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ST_SUPERATOM

public static final int ST_SUPERATOM
Superatom S-group type. @see #getType

See Also:
Constant Field Values

ST_MULTIPLE

public static final int ST_MULTIPLE
Multiple group S-group type. @see #getType

See Also:
Constant Field Values

ST_SRU

public static final int ST_SRU
SRU S-group type. @see #getType

See Also:
Constant Field Values

ST_MONOMER

public static final int ST_MONOMER
Monomer S-group type. @see #getType

See Also:
Constant Field Values

ST_MER

public static final int ST_MER
Mer S-group type. @see #getType

See Also:
Constant Field Values

ST_COPOLYMER

public static final int ST_COPOLYMER
Copolymer S-group type. @see #getType

See Also:
Constant Field Values

ST_CROSSLINK

public static final int ST_CROSSLINK
Crosslink S-group type. @see #getType

See Also:
Constant Field Values

ST_MODIFICATION

public static final int ST_MODIFICATION
Modification S-group type. @see #getType

See Also:
Constant Field Values

ST_MIXTURE

public static final int ST_MIXTURE
Mixture S-group type. @see #getType

See Also:
Constant Field Values

ST_FORMULATION

public static final int ST_FORMULATION
Formulation S-group type. @see #getType

See Also:
Constant Field Values

ST_DATA

public static final int ST_DATA
Data S-group type. @see #getType

See Also:
Constant Field Values

ST_ANY

public static final int ST_ANY
Any polymer S-group type. @see #getType

See Also:
Constant Field Values

ST_GENERIC

public static final int ST_GENERIC
Generic S-group type. @see #getType

See Also:
Constant Field Values

SST_ALTERNATING

public static final int SST_ALTERNATING
Alternating polymer S-group subtype. @see #getSubType

See Also:
Constant Field Values

SST_RANDOM

public static final int SST_RANDOM
Random polymer S-group subtype. @see #getSubType

See Also:
Constant Field Values

SST_BLOCK

public static final int SST_BLOCK
Block polymer S-group subtype. @see #getSubType

See Also:
Constant Field Values

SCN_EITHER_UNKNOWN

public static final int SCN_EITHER_UNKNOWN
Either unknown S-group connectivity. @see #getConnectivity

See Also:
Constant Field Values

SCN_HEAD_TO_HEAD

public static final int SCN_HEAD_TO_HEAD
Head-to-head S-group connectivity. @see #getConnectivity

See Also:
Constant Field Values

SCN_HEAD_TO_TAIL

public static final int SCN_HEAD_TO_TAIL
Head-to-tail S-group connectivity. @see #getConnectivity

See Also:
Constant Field Values

sgroupType

protected transient int sgroupType
The S-group type.


sgroupGraph

protected transient SelectionMolecule sgroupGraph
The S-group's internal structure.

Constructor Detail

Sgroup

public Sgroup(Molecule parent,
              int t)
Creates an S-group with the specified parent and type.

Parameters:
parent - the parent molecule
t - S-group type
Method Detail

setSgroupGraph

public void setSgroupGraph(SelectionMolecule smol)
Sets the molecule graph.

Parameters:
smol - the molecule graph
Since:
3.3, 11/03/2003

getSgroupGraph

public SelectionMolecule getSgroupGraph()
Gets the molecule graph.

Returns:
the molecule graph
Since:
3.3, 11/03/2003

setParentMolecule

protected final void setParentMolecule(Molecule p)
Sets the parent molecule.

Parameters:
p - the parent molecule

getParentMolecule

public final Molecule getParentMolecule()
Gets the parent molecule.

Returns:
the parent molecule

getSuperscript

public java.lang.String getSuperscript()
Gets the superscript for non-superatom S-groups.

Returns:
the superscript

setSubscript

public void setSubscript(java.lang.String s)
Sets the subscript for non-superatom S-groups.

Parameters:
s - the subscript

getSubscript

public java.lang.String getSubscript()
Gets the subscript for non-superatom S-groups.

Returns:
the subscript

getType

public int getType()
Gets S-group type.

Returns:
the type
See Also:
ST_SUPERATOM, ST_MULTIPLE, ST_SRU, ST_MONOMER, ST_MER, ST_COPOLYMER, ST_CROSSLINK, ST_MODIFICATION, ST_MODIFICATION, ST_MIXTURE, ST_FORMULATION, ST_DATA, ST_ANY, ST_GENERIC

getSubType

public int getSubType()
Gets polymer S-group subtype.

Returns:
the type
See Also:
SST_ALTERNATING, SST_RANDOM, SST_BLOCK

setSubType

public void setSubType(int t)
Sets polymer S-group subtype.

Parameters:
t - the type
See Also:
getSubType()

getConnectivity

public int getConnectivity()
Gets S-group connectivity.

Returns:
the connectivity
See Also:
SCN_EITHER_UNKNOWN, SCN_HEAD_TO_HEAD, SCN_HEAD_TO_TAIL

setConnectivity

public void setConnectivity(int c)
Sets S-group connectivity.

Parameters:
c - the connectivity
See Also:
getConnectivity()

hasBrackets

public boolean hasBrackets()
Checks if brackets should be painted or not.

Returns:
always true in the default implementation
Since:
3.3

cloneStructure

public final SelectionMolecule cloneStructure()
Gets the clone of the structure stored.

Returns:
the clone

createMolecule

public final Molecule createMolecule()
Creates a molecule object that contains only this group.

Returns:
the molecule

getAtomArray

public final MolAtom[] getAtomArray()
Gets the array of atoms in the S-group.

Returns:
the atom array

getAtom

public final MolAtom getAtom(int i)
Gets an atom in the S-group.

Parameters:
i - the atom index
Returns:
the atom

countAllAtoms

public final int countAllAtoms()
Counts the total number of atoms recursively.

Returns:
the number of atoms

isEmpty

public final boolean isEmpty()
Is it an empty S-group?

Returns:
true if the S-group does not contain any atoms, false otherwise

newInstance

public Sgroup newInstance()
Gets a new Sgroup instance.

Returns:
the new object

getAtomCount

public final int getAtomCount()
Gets the number of atoms in the S-group.

Returns:
the number of atoms

indexOf

public int indexOf(MolAtom a)
Gets the atom index in the S-group graph.

Parameters:
a - the atom
Returns:
the index or -1 if not found

add

public void add(MolAtom a)
Adds a new atom to the S-group.

Parameters:
a - the atom

setAtom

public void setAtom(int i,
                    MolAtom a)
Sets the specified atom in the S-group graph.

Parameters:
i - the index
a - the atom

removeEdges

public void removeEdges()
Removes the edge references.


removeAtom

public void removeAtom(MolAtom a)
Removes an atom from the S-group.

Parameters:
a - the atom

removeBond

protected void removeBond(MolBond b)
Removes a bond from the S-group.

Parameters:
b - the bond

findCrossingBonds

public MolBond[] findCrossingBonds()
Finds the crossing bonds. Use only when the S-group is expanded.

Returns:
the attachment bonds
Since:
3.3

getCrossingAtoms

public MolAtom[] getCrossingAtoms(MolBond[] xbonds)
Gets the atoms that have crossing bonds.

Parameters:
xbonds - the crossing bonds
Returns:
the attachment atoms
Since:
3.3

copy

protected void copy(Sgroup sg2,
                    Molecule m)
Make a copy of this S-group.

Parameters:
sg2 - the target S-group
m - the target molecule or null

removeGroupedAtom

protected static void removeGroupedAtom(Molecule m,
                                        MolAtom a,
                                        MolBond[] v)
Removes an atom from the molecule and remove its specified bonds.

Parameters:
m - the molecule
a - the atom
v - bonds to remove from the atom, remove all bonds if null
See Also:
CGraph.removeNode(int, int)