A callable constructor definition.
A callable constructor definition has the following components:
annotations
,new
’ keyword,name
, if present,parameters
,block
.Examples (multi-line):
// 2D point shared new polar(r, φ) { Float r; Float φ; this.x = r * cos(φ); this.y = r * sin(φ); this.r = r; this.φ = φ; } // 3D location in homogenous coordinates shared new cartesian(Float x, Float y, Float z) extends super.cartesian(x, y, z, 1.0) {} // default constructor shared new(String name, Date|String dateOfBirth) { this.name = name; this.dateOfBirth = switch (dateOfBirth) case (is Date) dateOfBirth case (is String) parseDate(dateOfBirth); }
no subtypes hierarchy
Initializer |
CallableConstructorDefinition(LIdentifier? name, Parameters parameters, Block block, ExtendedType? extendedType = null, Annotations annotations = ...) Parameters:
|
Attributes | |
annotations | shared actual Annotations annotations The annotations of the constructor. Refines Declaration.annotations |
block | shared actual Block block The block of the constructor. Refines ConstructorDefinition.block |
children | shared actual <Annotations|LIdentifier|Parameters|ExtendedType|Block>[] children The child nodes of this node. |
extendedType | shared actual ExtendedType? extendedType The extended type of the constructor, if present. |
hash | shared actual Integer hash The hash value of the value, which allows the value to be an element of a hash-based set or key of a hash-based map. Implementations must respect the constraint that:
Therefore, a class which refines In general, Note that when executing on a Java Virtual Machine, the
64-bit Refines Object.hash |
name | shared actual LIdentifier? name The name of the constructor, if present. The name can also be absent, in which case this is the default constructor. |
parameters | shared actual Parameters parameters The parameters of the constructor. Refines ConstructorDefinition.parameters |
Inherited Attributes |
Attributes inherited from: ConstructorDefinition |
Attributes inherited from: Declaration |
Attributes inherited from: Node |
Attributes inherited from: Object hash , string |
Methods | |
copy | shared CallableConstructorDefinition copy(LIdentifier? name = ..., Parameters parameters = ..., Block block = ..., ExtendedType? extendedType = ..., Annotations annotations = ...) Parameters:
|
equals | shared actual Boolean equals(Object that) Determine if two values are equal. Implementations should respect the constraints that:
Furthermore it is recommended that implementations
ensure that if A class which explicitly refines Note that an implementation of Refines Object.equals |
transform | shared actual Result transform<out Result>(Transformer<Result> transformer) Transform this node with the given If you have a Refines Node.transform |
visit | shared actual void visit(Visitor visitor) Visit this node with the given Refines Node.visit |
Inherited Methods |
Methods inherited from: Node |
Methods inherited from: Object equals |