Annotation Type 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.