Class MultipleSgroup

    • 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 molecule
        expanded - 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 copy
        m - the new parent molecule
        psg - 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 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
      • 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:
        Sgroup.RA_REMOVE_EXCEPT_RU
      • 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:
        Sgroup.setXState(int)
      • 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:
        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 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:
        Sgroup.PR_ATSYMS