|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectchemaxon.struc.CGraph
chemaxon.struc.MoleculeGraph
chemaxon.struc.Molecule
chemaxon.struc.RxnMolecule
Reaction.
| Field Summary | |
static int |
AGENTS
"Agent" structure type. |
static int |
PRODUCTS
"Product" structure type. |
static int |
REACTANTS
"Reactant" structure type. |
static int |
RGROUPED
Add R-groups to component structure. |
static int |
TYPE_COUNT
Number of structure types. |
static int |
TYPE_MASK
Component type mask. |
| Fields inherited from class chemaxon.struc.Molecule |
RMCLEANUP_FROMSGROUPS, RMCLEANUP_SGROUPATOMS |
| Fields inherited from class chemaxon.struc.CGraph |
btab, CACHE_REMOVE_ALL, CACHE_REMOVE_CACHEMEMORY, cacheMemory, ctab, edgeCount, edges, fragIds, grinv, grinvCC, grinvOptions, INITIAL_CAPACITY, nFrags, nGrinv, nodeCount, nodes, parentGraph, RMCLEANUP_ALL, RMCLEANUP_EDGES, RMCLEANUP_NONE, sssr, sssrl2idx, superGraph |
| Fields inherited from interface chemaxon.struc.ReadableMolecule |
HS_S, HS_SP, HS_SP2, HS_SP3, HS_UNKNOWN |
| Fields inherited from interface chemaxon.struc.StereoConstants |
ATOMSTEREO_EITHER, ATOMSTEREO_MASK, ATOMSTEREO_NONE, ATOMSTEREO_SPECIFIC, CHIRALITY_MASK, CHIRALITY_R, CHIRALITY_S, CHIRALITYSUPPORT_ALL, CHIRALITYSUPPORT_NONE, CHIRALITYSUPPORT_SELECTED, CIS, CTUMASK, CTUNKNOWN, CTUNSPEC, DBS_ALL, DBS_MARKED, DBS_NONE, PARITY_EITHER, PARITY_EVEN, PARITY_MASK, PARITY_ODD, PARITY_UNSPEC, STGRP_ABS, STGRP_AND, STGRP_NONE, STGRP_OR, TRANS |
| Constructor Summary | |
RxnMolecule()
Create a reaction. |
|
| Method Summary | |
void |
add(CEdge e)
Adds a bond to a reactant, product, agent. |
void |
add(CNode node)
Adds an atom to a reactant, product or agent structure. |
void |
addComponent(Molecule m,
int type)
Adds a reactant, product or agent. |
void |
addComponent(Molecule m,
int type,
boolean beNew)
Adds a reactant, product or agent. |
void |
addStructure(Molecule m,
int type)
Deprecated. as of Marvin 4.1, replaced by addComponent(Molecule, int) |
void |
addStructure(Molecule m,
int type,
boolean beNew)
Deprecated. as of Marvin 4.1, replaced by addComponent(Molecule, int, boolean) |
void |
clearForImport(java.lang.String fmt)
Clear the edges vector and the properties. |
void |
clonecopy(CGraph g)
Make another molecule identical to this one. |
void |
clonelesscopy(CGraph g)
Copy to selection. |
Molecule |
cloneMolecule()
Make an identical copy of the molecule. |
boolean |
contains(java.lang.Object o)
Checks if a reactant, agent or product structure contains the specified node or edge. |
int[][] |
createBHtab()
Creates the graph union's bond table extended with implicit hydrogen atoms. |
int[][] |
createCHtab()
Creates the graph union's connection table extended with implicit hydrogen atoms. |
static RxnMolecule |
createReaction(Molecule mol,
DPoint3[] arw,
int art)
Creates a reaction. |
static double |
determineArrowDistance(double x,
double y,
double z,
DPoint3[] ar)
Project the point (x,y,z) to the line of the reaction arrow 'ar'. |
int |
determineType(double x,
double y,
double z)
Determines whether a point should be in a reactant, in a product or in an agent. |
protected void |
fillSelectionMolecule(SelectionMolecule s)
Adds all atoms and bonds of the root structure and the R-groups to the specified molecule. |
void |
fuse(CGraph graph)
Add the atoms and bonds of another molecule. |
protected void |
fuse0(CGraph graph)
Add those nodes and edges of a graph that are not already elements. |
Molecule |
getAgent(int i)
Gets an agent. |
int |
getAgentCount()
Gets the number of agents. |
int[][] |
getBtab()
Gets the bond table for the graph union. |
DPoint3 |
getCenter(int type,
int i)
Gets the geometrical center of a reaction component. |
Molecule |
getComponent(int flags,
int i)
Gets a reactant, product or agent. |
Molecule |
getComponent(long id)
Gets a reactant, product or agent. |
int |
getComponentCount(int type)
Gets the number of reactants, products or agents. |
int |
getComponentFlags(long id)
Gets the reaction component type flags from the ID. |
long |
getComponentID(MolAtom a)
Gets the reaction component ID of an atom. |
long |
getComponentID(MolBond b)
Gets the reaction component ID of a bond. |
long |
getComponentID(Molecule m)
Gets the ID of a reaction component. |
int |
getComponentIndex(long id)
Gets the reactant, product or agent index from the ID. |
int |
getComponentType(long id)
Gets the reaction component type from the ID. |
int[][] |
getCtab()
Gets the connection table for the graph union. |
CEdge |
getEdge(int i)
Gets an edge. |
int |
getEdgeCount()
Gets the number of edges in the graph union. |
java.util.Vector |
getEdgeVector()
Gets the edges. |
java.lang.String |
getFormula()
Gets the molecular formula in Hill order. |
MoleculeGraph |
getGraphUnion()
Gets a graph containing all the atoms and bonds. |
protected int[] |
getGrinv()
Gets the graph invariants for the graph union. |
int |
getGrinv(int[] gi)
Gets the graph invariants for the graph union. |
double |
getMass()
Calculates the molecular weight of the molecule. |
CNode |
getNode(int i)
Gets a node. |
int |
getNodeCount()
Returns the number of nodes in the graph union. |
java.util.Vector |
getNodeVector()
Gets the nodes. |
Molecule |
getProduct(int i)
Gets a product. |
int |
getProductCount()
Gets the number of products. |
Molecule |
getReactant(int i)
Gets a reactant. |
int |
getReactantCount()
Gets the number of reactants. |
static RxnMolecule |
getReaction(CGraph g)
Returns the reaction represented by the given molecule if exists, otherwise null. |
DPoint3[] |
getReactionArrow()
Gets a two-element array containing the endpoints of the reaction arrow. |
int |
getReactionArrowType()
Gets the reaction arrow type. |
java.lang.String |
getReactionArrowTypeName()
Gets the reaction arrow type name. |
Molecule |
getStructure(int flags,
int i)
Deprecated. as of Marvin 4.1, replaced by getComponent(int, int) |
int |
getStructureCount(int type)
Deprecated. as of Marvin 4.1, replaced by getComponentCount(int) |
protected int |
getSubGraphCount()
Gets the number of all "submolecules". |
protected void |
getSubGraphs(MoleculeGraph[] arr,
int off)
Gets all "submolecules". |
boolean |
hasAtomSet()
Tests whether the molecule graph has atom sets. |
boolean |
hasBondSet()
Tests whether the molecule graph has atom sets. |
void |
implicitizeHydrogens(int f)
Removes explicit bound Hydrogens from the graph and converts them to implicit. |
int |
indexOf(CEdge edge)
Gets the index of the specified edge in the graph union. |
int |
indexOf(CNode node)
Gets the index of the specified node in the graph union. |
boolean |
isAtom()
A reaction molecule cannot represent an atom. |
boolean |
isBond()
A reaction molecule cannot represent a bond. |
boolean |
isEmpty()
Ask if the reaction is empty or not. |
boolean |
isIncompleteReaction()
Check whether the reaction is incomplete or not. |
boolean |
isReaction()
Checks if the structure represents a reaction or not. |
protected boolean |
isRealNodeParent()
Reaction molecules cannot be real node parents. |
protected void |
makeItSimilar(CGraph g)
Copies some properties of this molecule to the other one specified as argument. |
void |
mergeNodes(CNode that,
CNode node)
Merges bonds of an atom with another atom, then add the atom to the molecule. |
CGraph |
newInstance()
Creates a new RxnMolecule object. |
void |
rebuildStructures()
For each structure (reactant or product) determines whether it should be a reactant or a product depending on its the relative position to the reaction arrow. |
void |
rebuildStructures(DPoint3[] arw,
int art)
Sets the reaction arrow. |
void |
recalcReactionArrow()
Recalculates the reaction arrow, forced recalculation. |
void |
regenEdges()
Regenerate the edge vectors: remove their elements, then put the edge objects from the nodes into it. |
void |
removeAll()
Remove all the atoms and bonds from the root structure, and from all the R-groups. |
void |
removeAllEdges()
Removes all bonds from the reactants, products and agents. |
Molecule |
removeComponent(int flags,
int i)
Removes a reactant, product or agent. |
protected void |
removeEdge(CEdge edge,
int cleanupFlags)
Removes a bond from the reactants, products or agents. |
protected void |
removeEdge(int iu,
int cleanupFlags)
Removes an edge from a reactant, agent or product. |
void |
removeNode(CNode node,
int cleanupFlags)
Removes an atom from the reactants, products or agents. |
void |
removeNode(int iu,
int cleanupFlags)
Removes an atom from the reactants, products or agents. |
Molecule |
removeStructure(int flags,
int i)
Deprecated. as of Marvin 4.1, replaced by removeComponent(int, int) |
void |
replaceEdge(CEdge olde,
CEdge newe)
Replaces an edge by another one. |
void |
revalidateCoordDependentProps()
Revalidate coordinate dependent properties. |
void |
setAbsStereo(boolean c)
Sets the absolute stereoconfiguration flag for all the structures. |
void |
setDim(int d)
Sets the dimension for all the structures. |
void |
setEdge(int iu,
CEdge edge)
Sets the edge at the specified index. |
void |
setLocation(DPoint3 p)
Set the origin of the molecule. |
void |
setNode(int iu,
CNode node)
Sets the node at the specified index. |
void |
setReactionArrow()
Sets the stored reaction arrow. |
void |
setReactionArrow(DPoint3[] arw)
Sets the reaction arrow. |
void |
setReactionArrow0()
Sets the stored reaction arrow 'arrowPoints' to its calculated value. |
void |
setReactionArrowType(int type)
Sets the reaction arrow type. |
void |
setReactionArrowType(java.lang.String name)
Sets the reaction arrow type from type name. |
void |
setSgroupParent(MolAtom a,
Sgroup sg,
boolean set)
Sets or unsets an S-group as a parent of an atom in reactants, products or agents. |
Molecule |
simplifyIncompleteReactionToMolecule()
Simplify a reaction to a molecule if possible. |
void |
sortEdgesAccordingTo(CEdge[] order)
Sort edges in the same order as they appear in the specified array. |
void |
splitDisconnectedComponent(int type,
int index)
Replaces a disconnected reaction component by its connected fragments in the structure array. |
void |
splitDisconnectedComponent(long id)
Replaces a disconnected reaction component by its connected fragments in the structure array. |
void |
transform(CTransform3D t,
boolean incg)
Apply a transformation matrix to the atomic coordinates and the reaction arrow. |
protected void |
transformReactionArrow(CTransform3D t)
Apply a transformation matrix to the reaction arrow. |
| Methods inherited from class chemaxon.struc.CGraph |
addEdge0, addEdgeWithoutChangingIt, addNodeWithoutChangingIt, findComponentIds, findComponentIds, findEdge, findFrag, findFragById, findNode, getForefather, getFragCount, getFragIds, getGrinvCC, getLock, getParent, getSmallestRingSizeForIdx, getSSSR, incGrinvCC, incGrinvCCOnly, insertEdge, insertNode, insertNullEdges, insertNullNodes, isRing, isSymmetric, pack, regenCtabs, removeEdge, removeEdge, removeNode, removeNode, resetCtab, resetGrinvInParents, setGrinvCC |
| Methods inherited from class java.lang.Object |
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
public static final int TYPE_COUNT
REACTANTS, PRODUCTS, AGENTS.
public static final int REACTANTS
getComponent(int, int),
Constant Field Valuespublic static final int PRODUCTS
getComponent(int, int),
Constant Field Valuespublic static final int AGENTS
getComponent(int, int),
Constant Field Valuespublic static final int RGROUPED
public static final int TYPE_MASK
REACTANTS,
PRODUCTS,
AGENTS,
Constant Field Values| Constructor Detail |
public RxnMolecule()
| Method Detail |
public boolean isEmpty()
isEmpty in class Moleculepublic boolean isAtom()
isAtom in class MoleculeGraphpublic boolean isBond()
isBond in class MoleculeGraphpublic boolean isReaction()
isReaction in class Moleculepublic java.lang.String getFormula()
getFormula in class MoleculeGraphpublic double getMass()
getMass in class MoleculeGraphpublic static RxnMolecule getReaction(CGraph g)
g - the molecule graph
public int getReactantCount()
public int getProductCount()
public int getAgentCount()
public int getComponentCount(int type)
type - REACTANTS, PRODUCTS or AGENTS
public Molecule getReactant(int i)
i - reactant index
public Molecule getProduct(int i)
i - product index
public Molecule getAgent(int i)
i - agent index
public long getComponentID(Molecule m)
m - the reaction component
public long getComponentID(MolAtom a)
a - the atom
public long getComponentID(MolBond b)
b - the bond
public int getComponentType(long id)
id - the reaction component ID or -1
public int getComponentFlags(long id)
id - the reaction component ID or -1
public int getComponentIndex(long id)
id - the reaction component ID or -1
public Molecule getComponent(long id)
Warning! The RGROUPED flag returns an RgMolecule
object having the same atom objects as the original
reactant/product/agent. The parent of the atom objects is unchanged (it
is the original reactant/product/agent).
id - the reaction component ID
getComponent(int, int)
public Molecule getComponent(int flags,
int i)
Warning! The RGROUPED flag returns an RgMolecule
object having the same atom objects as the original reactant/product/agent.
The parent of the atom objects is unchanged (it is the original reactant/product/agent).
flags - REACTANTS, PRODUCTS or AGENTS,
can be combined with RGROUPEDi - reactant, product or agent index
public DPoint3 getCenter(int type,
int i)
type - REACTANTS, PRODUCTS or AGENTSi - reactant, product or agent index
public void revalidateCoordDependentProps()
revalidateCoordDependentProps in class MoleculeGraphpublic void setReactionArrow0()
public int getReactionArrowType()
public java.lang.String getReactionArrowTypeName()
public void setReactionArrowType(int type)
type - the reaction arrow typepublic void setReactionArrowType(java.lang.String name)
name - the reaction arrow type name
java.lang.IllegalArgumentException - for invalid type namepublic DPoint3[] getReactionArrow()
public void setReactionArrow(DPoint3[] arw)
arw - is the new reaction arrowpublic void setReactionArrow()
public void recalcReactionArrow()
public void rebuildStructures()
public void rebuildStructures(DPoint3[] arw,
int art)
arw - is the new reaction arrowart - is the new reaction arrow type
public static double determineArrowDistance(double x,
double y,
double z,
DPoint3[] ar)
x - is the x coordinate of the pointy - is the y coordinate of the pointz - is the z coordinate of the pointar - is the reaction arrow
public int determineType(double x,
double y,
double z)
x - point x coordinatey - point y coordinatez - point z coordinate
REACTANTS, PRODUCTS or AGENTS
public void addComponent(Molecule m,
int type)
m - the reactant, product or agenttype - REACTANTS, PRODUCTS or AGENTS
public void addComponent(Molecule m,
int type,
boolean beNew)
m - the reactant, product or agenttype - REACTANTS, PRODUCTS or AGENTSbeNew - m should be a new structure if true
public Molecule removeComponent(int flags,
int i)
Warning! The RGROUPED flag returns an RgMolecule
object having the same atom objects as the original reactant/product/agent.
The parent of the atom objects is unchanged (it is the original reactant/product/agent).
flags - REACTANTS, PRODUCTS or AGENTS,
can be combined with RGROUPEDi - reactant, product or agent index
public void clearForImport(java.lang.String fmt)
clearForImport in class Moleculefmt - input file format.
See the text formats on the
File Formats in
Marvin page.public void setDim(int d)
setDim in class Moleculed - 0, 2 or 3MoleculeGraph.flagspublic void setAbsStereo(boolean c)
setAbsStereo in class MoleculeGraphc - the absolute stereoconfiguration flagMoleculeGraph.flagspublic java.util.Vector getNodeVector()
getNodeVector in class MoleculeGraphpublic java.util.Vector getEdgeVector()
getEdgeVector in class MoleculeGraphpublic int getNodeCount()
getNodeCount in class CGraphpublic CNode getNode(int i)
getNode in class CGraphi - node index
public void setNode(int iu,
CNode node)
setNode in class CGraphiu - node index in the graph unionnode - new node referencepublic int[][] getCtab()
getCtab in class CGraphpublic int[][] getBtab()
getBtab in class CGraphpublic int[][] createCHtab()
createCHtab in class MoleculeGraphpublic int[][] createBHtab()
createBHtab in class MoleculeGraphpublic int getGrinv(int[] gi)
getGrinv in class MoleculeGraphgi - output array
java.lang.SecurityException - the GraphInvariants module cannot be
loaded because of security reasons (firewall)protected int[] getGrinv()
getGrinv in class CGraphpublic boolean contains(java.lang.Object o)
contains in class CGrapho - the node or edge object
public boolean hasAtomSet()
hasAtomSet in class MoleculeGraphtrue if there are atom sets,
false otherwisepublic boolean hasBondSet()
hasBondSet in class MoleculeGraphtrue if there are atom sets,
false otherwisepublic int indexOf(CNode node)
indexOf in class CGraphnode - the node
public int indexOf(CEdge edge)
indexOf in class CGraphedge - the edge
public void add(CNode node)
add in class CGraphnode - the new nodepublic int getEdgeCount()
getEdgeCount in class CGraphpublic CEdge getEdge(int i)
getEdge in class CGraphi - edge index in the graph union
public void setEdge(int iu,
CEdge edge)
setEdge in class MoleculeGraphiu - edge index in the graph unionedge - new node reference
public void replaceEdge(CEdge olde,
CEdge newe)
replaceEdge in class CGrapholde - the old edgenewe - the new edgepublic void add(CEdge e)
add in class CGraphe - the new edgepublic Molecule simplifyIncompleteReactionToMolecule()
this is returned.
thisMolecule.getSimplifiedMolecule()
public void removeNode(CNode node,
int cleanupFlags)
CGraph.removeNode(CNode)
instead unless you are sure what you are doing.
removeNode in class Moleculenode - the atomcleanupFlags - extra clean-up methodsCGraph.RMCLEANUP_NONE,
CGraph.RMCLEANUP_ALL,
CGraph.RMCLEANUP_EDGES,
MoleculeGraph.RMCLEANUP_STEREO,
Molecule.RMCLEANUP_SGROUPATOMS,
Molecule.RMCLEANUP_FROMSGROUPS
public void removeNode(int iu,
int cleanupFlags)
CGraph.removeNode(CNode)
instead unless you are sure what you are doing.
removeNode in class Moleculeiu - atom index in the graph unioncleanupFlags - extra clean-up methodsCGraph.RMCLEANUP_NONE,
CGraph.RMCLEANUP_ALL,
CGraph.RMCLEANUP_EDGES,
MoleculeGraph.RMCLEANUP_STEREO,
Molecule.RMCLEANUP_SGROUPATOMS,
Molecule.RMCLEANUP_FROMSGROUPS
protected void removeEdge(CEdge edge,
int cleanupFlags)
removeEdge in class Moleculeedge - the edgecleanupFlags - extra clean-up methodsCGraph.RMCLEANUP_NONE,
CGraph.RMCLEANUP_ALL,
CGraph.RMCLEANUP_EDGES,
MoleculeGraph.RMCLEANUP_STEREO,
Molecule.RMCLEANUP_SGROUPATOMS,
Molecule.RMCLEANUP_FROMSGROUPS
protected void removeEdge(int iu,
int cleanupFlags)
removeEdge in class Moleculeiu - edge index in the graph unioncleanupFlags - extra clean-up methodsCGraph.RMCLEANUP_NONE,
CGraph.RMCLEANUP_ALL,
CGraph.RMCLEANUP_EDGES,
MoleculeGraph.RMCLEANUP_STEREO,
Molecule.RMCLEANUP_SGROUPATOMS,
Molecule.RMCLEANUP_FROMSGROUPSpublic void removeAllEdges()
removeAllEdges in class Moleculepublic void removeAll()
removeAll in class Moleculeprotected boolean isRealNodeParent()
isRealNodeParent in class CGraphpublic void regenEdges()
regenEdges in class CGraphpublic void sortEdgesAccordingTo(CEdge[] order)
sortEdgesAccordingTo in class CGraphorder - the arraypublic void setLocation(DPoint3 p)
setLocation in class MoleculeGraphp - the originMoleculeGraph.orix
public void mergeNodes(CNode that,
CNode node)
mergeNodes in class Moleculethat - the atomnode - the other atompublic void fuse(CGraph graph)
fuse in class CGraphgraph - the other moleculeprotected void fuse0(CGraph graph)
fuse0 in class MoleculeGraphgraph - the structure to fuse into this one
public void setSgroupParent(MolAtom a,
Sgroup sg,
boolean set)
setSgroupParent in class Moleculea - the atomsg - the S-groupset - set (true) or unset (false)
java.lang.IllegalArgumentException - neither reactants, nor products or
agents contain the atompublic void clonecopy(CGraph g)
clonecopy in class Moleculeg - the target structurepublic void clonelesscopy(CGraph g)
clonelesscopy in class Moleculeg - the target structurepublic Molecule cloneMolecule()
cloneMolecule in class Moleculepublic CGraph newInstance()
newInstance in class Moleculeprotected void makeItSimilar(CGraph g)
makeItSimilar in class Moleculeg - the molecule to changepublic void splitDisconnectedComponent(long id)
id - the reaction component IDsplitDisconnectedComponent(int, int)
public void splitDisconnectedComponent(int type,
int index)
type - is the structure type:
REACTANTS, PRODUCTS or AGENTSindex - is the structure index
public void transform(CTransform3D t,
boolean incg)
transform in class Moleculet - the transformation matrixincg - increase grinvCC or notprotected void transformReactionArrow(CTransform3D t)
t - the transformation matrix
public static RxnMolecule createReaction(Molecule mol,
DPoint3[] arw,
int art)
mol - contains the atoms of reactants and productsarw - two-element array containing the endpoints of the reaction arrowart - the arrow type
public MoleculeGraph getGraphUnion()
getGraphUnion in class MoleculeGraphMolecule.getGraphUnionAsSelection()protected final int getSubGraphCount()
getSubGraphCount in class MoleculeGraphMoleculeGraph.getSubGraphs(MoleculeGraph[], int)
protected final void getSubGraphs(MoleculeGraph[] arr,
int off)
getSubGraphs in class MoleculeGrapharr - the output arrayoff - offsetMoleculeGraph.getSubGraphs(),
MoleculeGraph.getSubGraphCount()protected void fillSelectionMolecule(SelectionMolecule s)
fillSelectionMolecule in class Molecules - the selection moleculepublic int getStructureCount(int type)
getComponentCount(int)
type - reaction component type
public Molecule getStructure(int flags,
int i)
getComponent(int, int)
flags - component type and other flagsi - reactant, product or agent index
public void addStructure(Molecule m,
int type)
addComponent(Molecule, int)
m - the reactant, product or agenttype - reaction component type
public void addStructure(Molecule m,
int type,
boolean beNew)
addComponent(Molecule, int, boolean)
m - the reactant, product or agenttype - reaction component typebeNew - m should be a new structure if true
public Molecule removeStructure(int flags,
int i)
removeComponent(int, int)
flags - reaction component type and other flagsi - reactant, product or agent index
public void implicitizeHydrogens(int f)
MolAtom.isImplicitizableH(int) returns true.
implicitizeHydrogens in class MoleculeGraphf - flags specifying special H atom types to includeMolAtom.LONELY_H,
MolAtom.ISOTOPE_H,
MolAtom.CHARGED_H,
MolAtom.RADICAL_H,
MolAtom.MAPPED_H,
MolAtom.WEDGED_H,
MolAtom.HCONNECTED_Hpublic boolean isIncompleteReaction()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||