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:
  • Constructor Details

    • 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 molecule
      expanded - whether the S-group is created in expanded state or not
      See Also:
    • MultipleSgroup

      protected MultipleSgroup(MultipleSgroup sg, Molecule m, Sgroup psg, int[] atomIndexMap)
      Copy constructor.
      Parameters:
      sg - the S-group to copy
      m - the new parent molecule
      psg - the new parent S-group or null
      Since:
      Marvin 3.4
  • Method Details

    • 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 atom
      set - add (true) or remove (false)
    • add

      public void add(MolAtom a)
      Adds a new atom to the S-group.
      Overrides:
      add in class Sgroup
      Parameters:
      a - the atom
    • 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.
      Overrides:
      setAtom in class Sgroup
      Parameters:
      i - the index
      a - the atom
    • removeAtom

      protected final void removeAtom(MolAtom a, int opts)
      Removes an atom from the S-group.
      Overrides:
      removeAtom in class Sgroup
      Parameters:
      a - the atom
      opts - 0 or Sgroup.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 class Sgroup
      Parameters:
      olda - the original atom
      newa - the new atom
      opts - options
      Since:
      4.1, 07/25/2006
      See Also:
    • cloneSgroup

      protected Sgroup cloneSgroup(Molecule m, Sgroup psg, int[] atomIndexMap)
      Gets a new Sgroup instance.
      Overrides:
      cloneSgroup in class Sgroup
      Parameters:
      m - the new parent molecule
      psg - the new parent S-group
      atomIndexMap - indices of cloned atoms in the original molecule in the case of partial cloning, or null 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 class Sgroup
      Parameters:
      s - the multiplier as a string
    • getSubscript

      public String getSubscript()
      Gets the subscript.
      Overrides:
      getSubscript in class Sgroup
      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 interface Expandable
      Overrides:
      expand in class Sgroup
      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 interface Expandable
      Returns:
      true if expanded, false if contracted
    • contract

      public final boolean contract(int opts)
      Contracts this S-group.
      Specified by:
      contract in interface Expandable
      Overrides:
      contract in class Sgroup
      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 class Sgroup
      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 class Sgroup
      Parameters:
      opts - options or 0
      Returns:
      the string representation
      Since:
      Marvin 4.1, 07/26/2006
      See Also: