Package chemaxon.struc.sgroup
Class MultipleSgroup
java.lang.Object
chemaxon.struc.Sgroup
chemaxon.struc.sgroup.MultipleSgroup
- All Implemented Interfaces:
Expandable
,Serializable
Multiple S-group.
- Since:
- Marvin 3.3, 08/17/2003
- See Also:
-
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
ModifierConstructorDescriptionMultipleSgroup
(Molecule parent, boolean expanded) Constructs a multiple S-group.protected
MultipleSgroup
(MultipleSgroup sg, Molecule m, Sgroup psg, int[] atomIndexMap) Copy constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds a new atom to the S-group.final void
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.final boolean
contract
(int opts) Contracts this S-group.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.final int
Gets the multiplier.final MolAtom
getRepeatingUnitAtom
(int i) Gets a paradigmatic repeating unit atom.final int
Gets the number of atoms in the pararadigmatic repeating unit.final MolAtom[]
Gets the repeating unit atoms.Gets the subscript.static boolean
isAcceptableGraph
(MoleculeGraph molGraph) Decides whether the given molecule graph can be the graph of a multiple s-group.boolean
Tests whether the bracket is visible.final boolean
Is this S-group contracted?final boolean
Is this S-group expanded?final boolean
Checks if the specified atom object is in the paradigmatic repeating unit or not.Gets a new MultipleSgroup instance.protected final void
removeAtom
(MolAtom a, int opts) Removes an atom from the S-group.final void
Removes an atom from the list of paradigmatic repeating unit atoms.final void
replaceAtom
(MolAtom olda, MolAtom newa, int opts) Replace an existing atom by a new one.final void
Sets the specified atom in the S-group graph.final void
setMultiplier
(int m) Sets the multiplier.final void
setRepeatingUnitAtom
(MolAtom a, boolean set) Adds or removes an atom to/from the list of paradigmatic repeating unit atoms.void
Sets the subscript.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 Details
-
MultipleSgroup
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:
-
MultipleSgroup
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 Details
-
isRepeatingUnitAtom
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
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
Gets a paradigmatic repeating unit atom.- Parameters:
i
- the paradigmatic repeating unit atom index- Returns:
- the paradigmatic repeating unit atom
-
getRepeatingUnitAtoms
Gets the repeating unit atoms.- Returns:
- the paradigmatic repeating unit atoms
-
addRepeatingUnitAtom
Adds an atom to the list of paradigmatic repeating unit atoms.- Parameters:
a
- the atom to add
-
removeRepeatingUnitAtom
Removes an atom from the list of paradigmatic repeating unit atoms.- Parameters:
a
- the atom to remove
-
setRepeatingUnitAtom
Adds or removes an atom to/from the list of paradigmatic repeating unit atoms.- Parameters:
a
- the atomset
- add (true
) or remove (false
)
-
add
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
Gets a new MultipleSgroup instance.- Returns:
- the new object
-
setAtom
Sets the specified atom in the S-group graph. -
removeAtom
Removes an atom from the S-group.- Overrides:
removeAtom
in classSgroup
- Parameters:
a
- the atomopts
- 0 orSgroup.RA_IN_EXPAND
-
replaceAtom
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:
-
cloneSgroup
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
Sets the subscript.- Overrides:
setSubscript
in classSgroup
- Parameters:
s
- the multiplier as a 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:
-
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:
-
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
Returns a string representation of the group.
-