# Package com.codename1.annotations

package com.codename1.annotations
Codename One specific Java annotations used by the build pipeline and the ParparVM bytecode translator to mark methods and classes for special treatment -- e.g. opting individual call sites out of debug info or null/array-bounds checks, declaring asynchronous methods, or forcing a class to be treated as concrete during devirtualization.

- Class
  Description
  Async
  Helper annotations for asynchronous computation.
  Async.Execute
  Indicates that the marked method executes async computation.
  Async.Schedule
  Indicates that the marked method schedules async computation.
  Bind
  Pairs a `@Bindable` field with the component it should mirror.
  Bindable
  Marks a POJO or `PropertyBusinessObject` as a target for the component binding processor.
  Column
  Renames or constrains an `@Entity` field's column.
  Concrete
  Indicates that a class has a known concrete implementation that ParparVM can target directly in native (C/Objective-C) pipelines.
  DbTransient
  Excludes an `@Entity` field from the generated table.
  DisableDebugInfo
  Marks a method so ParparVM omits emitted debug line information.
  DisableNullChecksAndArrayBoundsChecks
  Marks a method so ParparVM omits emitted null and array bounds checks.
  Entity
  Marks a POJO or `PropertyBusinessObject` as a target for the SQLite ORM processor.
  Id
  Designates the primary-key field of an `@Entity`.
  JsonIgnore
  Excludes a `@Mapped` field from the JSON projection.
  JsonProperty
  Renames a `@Mapped` field in the JSON projection.
  Mapped
  Marks a POJO or `PropertyBusinessObject` as a target for the build-time JSON / XML mapping processor.
  Route
  Binds a `Form` class -- or a static method that returns a `Form` -- to a URL path so the framework can show it in response to a deep link.
  Route.Routes
  Container annotation for binding several path patterns to the same target.
  RouteParam
  Binds a constructor or static-factory parameter to a path variable or query parameter from an incoming deep link.
  XmlAttribute
  Promotes a `@Mapped` field to an XML attribute on the parent element rather than a nested child element.
  XmlElement
  Renames a `@Mapped` field in the XML projection.
  XmlRoot
  Names the root XML element produced for a `@Mapped` class.
  XmlTransient
  Excludes a `@Mapped` field from the XML projection.