Annotation Type Mapped


@Retention(CLASS) @Target(TYPE) public @interface Mapped

Marks a POJO or PropertyBusinessObject as a target for the build-time JSON / XML mapping processor.

The Codename One Maven plugin scans every @Mapped class at build time and emits a reflection-free Mapper next to it. Application code reaches the generated mapper through com.codename1.mapping.Mappers:

@Mapped
public class User {
    @JsonProperty("first_name")
    public String firstName;
    public int age;
    @JsonIgnore
    transient String passwordHash;
}

String json = Mappers.toJson(new User());
User u = Mappers.fromJson(json, User.class);

Either public fields or JavaBeans-style accessors (getX / setX, isX for booleans) are walked. com.codename1.properties.Property fields are routed through Property#get / Property#set so the same class can expose either programming model. Nothing on the runtime side uses reflection or Class.forName -- every read and write is a direct symbol reference that the iOS Class.forName ban and ParparVM rename pass leave intact.

The @XmlRoot / @XmlElement / @XmlAttribute / @XmlTransient annotations control the XML projection on top of the same fields.