Package jetbrains.mps.smodel.behaviour
Class BHReflection
- java.lang.Object
 - 
- jetbrains.mps.smodel.behaviour.BHReflection
 
 
- 
public final class BHReflection extends Object
Behavior Reflection Facade. API for the generated behavior code. The API is null-safe 
- 
- 
Constructor Summary
Constructors Constructor Description BHReflection() 
- 
Method Summary
All Methods Static Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static voidinitNode(SNode node)static Objectinvoke(SAbstractConcept operand, SMethodId methodId, Object... parameters)Deprecated.operand is not null actually, use #invoke0 below insteadstatic Objectinvoke(SNode operand, SMethodId methodId, Object... parameters)Deprecated.operand is not null actually, use #invoke0 below insteadstatic Objectinvoke0(SAbstractConcept operand, SAbstractConcept concept, SMethodId methodId, Object... parameters)static Objectinvoke0(SNode operand, SAbstractConcept concept, SMethodId methodId, Object... parameters)NB: Here we call #invoke and not #invokeSpecial since the method could be a non-virtual invocation from one of the ancestors Separating #invoke in two #invokeNonVirtual and #invokeVirtual instructions we can get rid ofstatic ObjectinvokeSpecial(SAbstractConcept operand, SAbstractConcept concreteConcept, SMethodId methodId, Object... parameters)static ObjectinvokeSpecial(SNode operand, SAbstractConcept concreteConcept, SMethodId methodId, Object... parameters)invokes a method specifically in the concreteConcept behavior.static ObjectinvokeSuper(SAbstractConcept operand, SAbstractConcept concreteConcept, SMethodId methodId, Object... parameters)static ObjectinvokeSuper(SNode operand, SAbstractConcept concreteConcept, SMethodId methodId, Object... parameters)method has to be virtual invokes method implementation which is strictly after the given concrete concept in the ancestor linearization of the node's conceptstatic SNodenewNode(SModel model, SConstructor constructor, Object... parameters) 
 - 
 
- 
- 
Method Detail
- 
newNode
@NotNull public static SNode newNode(@Nullable SModel model, @NotNull SConstructor constructor, Object... parameters)
 
- 
invoke
@Deprecated public static Object invoke(@Nullable SNode operand, @NotNull SMethodId methodId, Object... parameters)
Deprecated.operand is not null actually, use #invoke0 below instead 
- 
invoke
@Deprecated public static Object invoke(@Nullable SAbstractConcept operand, @NotNull SMethodId methodId, Object... parameters)
Deprecated.operand is not null actually, use #invoke0 below instead 
- 
invoke0
public static Object invoke0(@Nullable SNode operand, @NotNull SAbstractConcept concept, @NotNull SMethodId methodId, Object... parameters)
NB: Here we call #invoke and not #invokeSpecial since the method could be a non-virtual invocation from one of the ancestors Separating #invoke in two #invokeNonVirtual and #invokeVirtual instructions we can get rid of 
- 
invoke0
public static Object invoke0(@Nullable SAbstractConcept operand, @NotNull SAbstractConcept concept, @NotNull SMethodId methodId, Object... parameters)
 
- 
invokeSpecial
public static Object invokeSpecial(@Nullable SNode operand, @NotNull SAbstractConcept concreteConcept, @NotNull SMethodId methodId, Object... parameters)
invokes a method specifically in the concreteConcept behavior. 
- 
invokeSpecial
public static Object invokeSpecial(@Nullable SAbstractConcept operand, @NotNull SAbstractConcept concreteConcept, @NotNull SMethodId methodId, Object... parameters)
 
- 
invokeSuper
public static Object invokeSuper(@Nullable SNode operand, @NotNull SAbstractConcept concreteConcept, @NotNull SMethodId methodId, Object... parameters)
method has to be virtual invokes method implementation which is strictly after the given concrete concept in the ancestor linearization of the node's concept 
- 
invokeSuper
public static Object invokeSuper(@Nullable SAbstractConcept operand, @NotNull SAbstractConcept concreteConcept, @NotNull SMethodId methodId, Object... parameters)
 
 - 
 
 -