Decorators
Decorate mapping operations with additional logic.
data class User(
var firstName: String,
var lastName: String
)public class User {
private String firstName;
private String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}data class UserDisplay(
var firstName: String,
var lastName: String,
var fullName: String
)public class UserDisplay {
private String firstName;
private String lastName;
private String fullName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getFullName() {
return fullName;
}
public void setFullName(String fullName) {
this.fullName = fullName;
}
}Adding Decorators
Class Decorators
class UserUserDisplayDecorator : MappingDecorator<User, UserDisplay> {
override fun decorate(context: MappingDecoratorContext<User, UserDisplay>) {
val (from, to) = context
to.fullName = "${from.firstName} ${from.lastName}"
}
}public class UserUserDisplayDecorator implements MappingDecorator<User, UserDisplay> {
@Override
public void decorate(@NonNull MappingDecoratorContext<User, UserDisplay> mappingDecoratorContext) {
User from = mappingDecoratorContext.getFrom();
UserDisplay to = mappingDecoratorContext.getTo();
to.setFullName(from.getFirstName() + " " + from.getLastName());
}
}Inline Decorators
Last updated
Was this helpful?