Interface SMethod<T>

    • Method Detail

      • getId

        @NotNull
        SMethodId getId()
        Returns:
        SMethodId which uniquely identifies the behavior methods within the concept NB: all inherited methods count as well However the id of the virtual method and its overrides is the same (!)
      • invoke

        T invoke​(@Nullable
                 SNode operand,
                 Object... parameters)
        invokes the method (trying to resolve the right method on runtime if it is virtual) essentially invokes the #invoke0 method with the concept of the operand
      • invoke

        T invoke​(@Nullable
                 SAbstractConcept operand,
                 Object... parameters)
        invokes the method in the case it is static (trying to resolve the right method on runtime if it is virtual)
      • invokeSpecial

        T invokeSpecial​(@Nullable
                        SNode operand,
                        Object... parameters)
        invokes private method (no dynamic method resolve) generated from the super non-virtual invocations or the super<> invocations
      • invokeSuper

        T invokeSuper​(@Nullable
                      SNode operand,
                      @NotNull
                      SAbstractConcept concreteConcept,
                      Object... parameters)
        invokes virtual method looking for the ancestors of the node's concept (dynamic method resolve)
        Parameters:
        concreteConcept - is the concept from which the #invokeSuper is intended to be executed
      • invokeSuper

        T invokeSuper​(@Nullable
                      SAbstractConcept operand,
                      @NotNull
                      SAbstractConcept concreteConcept,
                      Object... parameters)
        invokes virtual method looking for the ancestors of the concept (dynamic method resolve)
        Parameters:
        concreteConcept - is the concept from which the #invokeSuper is intended to be executed
      • isAbstract

        boolean isAbstract()
        abstract => virtual
        Returns:
        true iff the method has an abstract modifier