Package chemaxon.struc.sgroup
Class MultipleSgroup
- java.lang.Object
-
- chemaxon.struc.Sgroup
-
- chemaxon.struc.sgroup.MultipleSgroup
-
- All Implemented Interfaces:
Expandable
,Serializable
@PublicAPI public class MultipleSgroup extends Sgroup implements Expandable
Multiple S-group.- Since:
- Marvin 3.3, 08/17/2003
- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class chemaxon.struc.Sgroup
atomSet, brackets, CHARGE_ON_ATOMS, CHARGE_ON_GROUP, parentSgroup, PR_ATSYMS, RA_IN_EXPAND, RA_REMOVE_EXCEPT_RU, SCN_EITHER_UNKNOWN, SCN_HEAD_TO_HEAD, SCN_HEAD_TO_TAIL, SGROUP_TYPE_COUNT, sgroupGraph, sgroupType, SORT_CHILD_PARENT, SORT_PARENT_CHILD, SST_ALTERNATING, SST_BLOCK, SST_RANDOM, ST_AMINOACID, ST_ANY, ST_COMPONENT, ST_COPOLYMER, ST_CROSSLINK, ST_DATA, ST_FORMULATION, ST_GENERIC, ST_GRAFT, ST_MER, ST_MIXTURE, ST_MODIFICATION, ST_MONOMER, ST_MULTICENTER, ST_MULTIPLE, ST_SRU, ST_SUPERATOM, XSTATE_C, XSTATE_NONE, XSTATE_X, XSTATE_XC
-
Fields inherited from interface chemaxon.struc.sgroup.Expandable
COORDS_UPDATE, DEFAULT_OPTIONS, FAST_COORDS, LEAVE_COORDS_UNCHANGED, MDL_EXPAND, NONRECURSIVE_EXPAND, REVERSIBLE_EXPAND
-
-
Constructor Summary
Constructors Modifier Constructor Description MultipleSgroup(Molecule parent, boolean expanded)
Constructs a multiple S-group.protected
MultipleSgroup(MultipleSgroup sg, Molecule m, Sgroup psg, int[] atomIndexMap)
Copy constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(MolAtom a)
Adds a new atom to the S-group.void
addRepeatingUnitAtom(MolAtom a)
Adds an atom to the list of paradigmatic repeating unit atoms.protected Sgroup
cloneSgroup(Molecule m, Sgroup psg, int[] atomIndexMap)
Gets a new Sgroup instance.boolean
contract(int opts)
Contracts this S-group.boolean
expand(int opts)
Expands this S-group unless it has expandable child s-group because in that case our calculations' behaviour can not be predicted.int
getMultiplier()
Gets the multiplier.MolAtom
getRepeatingUnitAtom(int i)
Gets a paradigmatic repeating unit atom.int
getRepeatingUnitAtomCount()
Gets the number of atoms in the pararadigmatic repeating unit.MolAtom[]
getRepeatingUnitAtoms()
Gets the repeating unit atoms.String
getSubscript()
Gets the subscript.static boolean
isAcceptableGraph(MoleculeGraph molGraph)
Decides whether the given molecule graph can be the graph of a multiple s-group.boolean
isBracketVisible()
Tests whether the bracket is visible.boolean
isContracted()
Is this S-group contracted?boolean
isExpanded()
Is this S-group expanded?boolean
isRepeatingUnitAtom(MolAtom a)
Checks if the specified atom object is in the paradigmatic repeating unit or not.Sgroup
newInstance()
Gets a new MultipleSgroup instance.protected void
removeAtom(MolAtom a, int opts)
Removes an atom from the S-group.void
removeRepeatingUnitAtom(MolAtom a)
Removes an atom from the list of paradigmatic repeating unit atoms.void
replaceAtom(MolAtom olda, MolAtom newa, int opts)
Replace an existing atom by a new one.void
setAtom(int i, MolAtom a)
Sets the specified atom in the S-group graph.void
setMultiplier(int m)
Sets the multiplier.void
setRepeatingUnitAtom(MolAtom a, boolean set)
Adds or removes an atom to/from the list of paradigmatic repeating unit atoms.void
setSubscript(String s)
Sets the subscript.String
toString(int opts)
Returns a string representation of the group.-
Methods inherited from class chemaxon.struc.Sgroup
addBracket, addChildSgroup, areChildSgroupsVisible, checkBondConsistency, checkBonds, checkConsistencyInEmbeddings, checkSgroupGraphConsistency, clearObjects, cloneSgroup, cloneStructure, contains, containsAllAtomsOf, countAllAtoms, createMolecule, createMolecule, findCrossingBonds, findSmallestSgroupContaining, findSmallestSgroupOf, getAtom, getAtomArray, getAtomCount, getAtomSymbolListAsString, getAttach, getBondArray, getBracketCount, getBrackets, getChargeLocation, getChildSgroup, getChildSgroupCount, getChildSgroups, getConnectivity, getCrossingAtoms, getId, getParentMolecule, getParentSgroup, getSgroupGraph, getSgroupType, getSubType, getSuperscript, getTotalCharge, getType, getXState, hasAtom, hasBrackets, indexOf, indexOf, initBrackets, isBracketCrossingBond, isDescendantOf, isEmpty, isOrderedComponentSgroup, isPartSelected, isRemovable, isSelected, isTotalSelected, isVisible, removeAtom, removeAtom, removeBond, removeBonds, removeChildSgroup, removeGroupedAtom, removeObject, replaceAtom, selectAllObjects, setChargeLocation, setConnectivity, setGUIStateRecursively, setGUIStateRecursively, setId, setParentMolecule, setSgroupGraph, setSubType, setXState, setXState, setXState0, sort, toString, transformByParent
-
-
-
-
Constructor Detail
-
MultipleSgroup
public MultipleSgroup(Molecule parent, boolean expanded)
Constructs a multiple S-group. Please note the S-group is not added automatically to the parent molecule.- Parameters:
parent
- the parent moleculeexpanded
- whether the S-group is created in expanded state or not- See Also:
Molecule.addSgroup(Sgroup, boolean)
-
MultipleSgroup
protected MultipleSgroup(MultipleSgroup sg, Molecule m, Sgroup psg, int[] atomIndexMap)
Copy constructor.- Parameters:
sg
- the S-group to copym
- the new parent moleculepsg
- the new parent S-group or null- Since:
- Marvin 3.4
-
-
Method Detail
-
isRepeatingUnitAtom
public final boolean isRepeatingUnitAtom(MolAtom a)
Checks if the specified atom object is in the paradigmatic repeating unit or not.- Parameters:
a
- the atom to check- Returns:
- true if it is in the paradigmatic repeating unit, false otherwise
-
isAcceptableGraph
public static boolean isAcceptableGraph(MoleculeGraph molGraph)
Decides whether the given molecule graph can be the graph of a multiple s-group.- Parameters:
molGraph
- molecule graph to check- Returns:
- true if the graph is acceptable as a multiple sgroup
- Since:
- Marvin 5.4.0, 01/27/2010
-
getRepeatingUnitAtomCount
public final int getRepeatingUnitAtomCount()
Gets the number of atoms in the pararadigmatic repeating unit.- Returns:
- the number of atoms in the paradigmatic repeating unit
-
getRepeatingUnitAtom
public final MolAtom getRepeatingUnitAtom(int i)
Gets a paradigmatic repeating unit atom.- Parameters:
i
- the paradigmatic repeating unit atom index- Returns:
- the paradigmatic repeating unit atom
-
getRepeatingUnitAtoms
public final MolAtom[] getRepeatingUnitAtoms()
Gets the repeating unit atoms.- Returns:
- the paradigmatic repeating unit atoms
-
addRepeatingUnitAtom
public final void addRepeatingUnitAtom(MolAtom a)
Adds an atom to the list of paradigmatic repeating unit atoms.- Parameters:
a
- the atom to add
-
removeRepeatingUnitAtom
public final void removeRepeatingUnitAtom(MolAtom a)
Removes an atom from the list of paradigmatic repeating unit atoms.- Parameters:
a
- the atom to remove
-
setRepeatingUnitAtom
public final void setRepeatingUnitAtom(MolAtom a, boolean set)
Adds or removes an atom to/from the list of paradigmatic repeating unit atoms.- Parameters:
a
- the atomset
- add (true
) or remove (false
)
-
add
public void add(MolAtom a)
Adds a new atom to the S-group.
-
getMultiplier
public final int getMultiplier()
Gets the multiplier.- Returns:
- the multiplier
-
setMultiplier
public final void setMultiplier(int m)
Sets the multiplier.- Parameters:
m
- the multiplier
-
newInstance
public Sgroup newInstance()
Gets a new MultipleSgroup instance.- Returns:
- the new object
-
setAtom
public final void setAtom(int i, MolAtom a)
Sets the specified atom in the S-group graph.
-
removeAtom
protected final void removeAtom(MolAtom a, int opts)
Removes an atom from the S-group.- Overrides:
removeAtom
in classSgroup
- Parameters:
a
- the atomopts
- 0 orSgroup.RA_IN_EXPAND
-
replaceAtom
public final void replaceAtom(MolAtom olda, MolAtom newa, int opts)
Replace an existing atom by a new one.- Overrides:
replaceAtom
in classSgroup
- Parameters:
olda
- the original atomnewa
- the new atomopts
- options- Since:
- 4.1, 07/25/2006
- See Also:
Sgroup.RA_REMOVE_EXCEPT_RU
-
cloneSgroup
protected Sgroup cloneSgroup(Molecule m, Sgroup psg, int[] atomIndexMap)
Gets a new Sgroup instance.- Overrides:
cloneSgroup
in classSgroup
- Parameters:
m
- the new parent moleculepsg
- the new parent S-groupatomIndexMap
- indices of cloned atoms in the original molecule in the case of partial cloning, ornull
otherwise- Returns:
- the new object
- Since:
- Marvin 5.0.2, 03/07/2008
-
setSubscript
public void setSubscript(String s)
Sets the subscript.- Overrides:
setSubscript
in classSgroup
- Parameters:
s
- the multiplier as a string
-
getSubscript
public String getSubscript()
Gets the subscript.- Overrides:
getSubscript
in classSgroup
- Returns:
- the subscript in contracted state, empty string in expanded state
-
expand
public final boolean expand(int opts)
Expands this S-group unless it has expandable child s-group because in that case our calculations' behaviour can not be predicted.- Specified by:
expand
in interfaceExpandable
- Overrides:
expand
in classSgroup
- Parameters:
opts
- expansion options- Returns:
- true if the operation was successful, false if already expanded,
or has
Expandable
descendant - Throws:
IllegalArgumentException
- if the group is invisible (it has a non-expanded parent)- See Also:
Sgroup.setXState(int)
-
isExpanded
public final boolean isExpanded()
Is this S-group expanded?- Specified by:
isExpanded
in interfaceExpandable
- Returns:
- true if expanded, false if contracted
-
contract
public final boolean contract(int opts)
Contracts this S-group.- Specified by:
contract
in interfaceExpandable
- Overrides:
contract
in classSgroup
- Parameters:
opts
- contraction options- Returns:
- true if the operation was successful, false if already contracted
- Throws:
IllegalArgumentException
- if the group is invisible (it has a non-expanded parent)- See Also:
Sgroup.setXState(int)
-
isContracted
public final boolean isContracted()
Is this S-group contracted?- Returns:
- true if contracted, false if expanded
-
isBracketVisible
public boolean isBracketVisible()
Tests whether the bracket is visible. Multiple S-group brackets are only visible in expanded state.- Overrides:
isBracketVisible
in classSgroup
- Returns:
true
in contracted,false
in expanded state- Since:
- Marvin 3.5.1, 11/12/2004
-
toString
public String toString(int opts)
Returns a string representation of the group.- Overrides:
toString
in classSgroup
- Parameters:
opts
- options or 0- Returns:
- the string representation
- Since:
- Marvin 4.1, 07/26/2006
- See Also:
Sgroup.PR_ATSYMS
-
-