class

Analyzer::Java::Vaadin

Inherits Analyzer::Java::JavaEngine < Analyzer < FileHelper < Reference < Object

Vaadin Flow navigation targets (@Route / @RouteAlias, prefixed by @RoutePrefix on the parent layouts) and Hilla browser-callable services (@BrowserCallable / @Endpoint), which expose every public method as POST <prefix>/<Service>/<method>.

Constants

CRUD_SERVICE_METHODS = LIST_SERVICE_METHODS.merge({"save" => ["value"] of ::String, "saveAll" => ["values"] of ::String, "delete" => ["id"] of ::String, "deleteAll" => ["ids"] of ::String})
FLOW_ROUTER_RE = Regex.union("com.vaadin.flow.router")
HILLA_RE = Detector::Java::Vaadin::HILLA_MARKERS

@Endpoint is also Spring Boot Actuator's; only Hilla's counts.

LIST_SERVICE_METHODS = {"list" => ["pageable", "filter"] of ::String, "get" => ["id"] of ::String, "exists" => ["id"] of ::String, "count" => ["filter"] of ::String}

Hilla's generic services: what a @BrowserCallable subclass inherits.

MAX_LAYOUT_DEPTH = 8
ROUTE_TEMPLATE_RE = /:([A-Za-z_]\w*)(?:\([^)]*\))?[?*]?/
SERVICE_BASES = {"ListRepositoryService" => LIST_SERVICE_METHODS, "ListService" => LIST_SERVICE_METHODS, "CrudRepositoryService" => CRUD_SERVICE_METHODS, "CrudService" => CRUD_SERVICE_METHODS}
TAGGER = "vaadin_analyzer"
VAADIN_GATE = Regex.union("com.vaadin", "dev.hilla")

Class methods

tech_name
Source

Instance methods

analyze
Source
tech

Instance-side view of the same declaration. The per-file rescues live on this base class, which has no way to name the analyzer that is running inside them, so a skipped file could not be attributed to a tech. Deriving it from analyzer_for keeps the name written exactly once.

Source

Nested types