Class JsDefinitionProxy

java.lang.Object
com.vaadin.flow.js.JsDefinitionProxy

public final class JsDefinitionProxy extends Object
Hands out implementations of JsDefinition interfaces, which turn a call of a declared method into a JsCall and give it to whoever runs it.

The interface is checked here rather than when a method is called, so one that can not work says so when the implementation is handed out.

For internal use only. Call Element.executeJs(Class), which runs the call on the element the implementation was obtained from.

  • Method Details

    • create

      public static <T> T create(Class<T> definitionType, SerializableFunction<JsCall,PendingJavaScriptResult> runner)
      Creates an implementation of the given JavaScript definition, which hands every call of it to the given function and answers with what the function answers, for a method that declares a result.
      Type Parameters:
      T - the JavaScript definition type
      Parameters:
      definitionType - the JavaScript definition, not null
      runner - what runs a call of the interface, not null
      Returns:
      an implementation of the interface, not null
      Throws:
      IllegalArgumentException - if the type is not an interface, is not annotated with JsDefinition, or has a method that can not be answered