![]() | tech note |
| 自分をリファクタリング中。 |
S2DxoのConversionRuleのあれこれ。
OGNLが分かれば、けっこういろんな変換ができちゃいそう。
先に、変換元クラスと変換先クラスを示しておきます。
S2Dxoクイックスタートを真似るとすぐに試すことができると思います。
変換元クラス(Employee)
便宜上、定数LUCKY_NUMBERとユーティリティメソッドformatId()も入れています。public class Employee {
private long id;
private String name;
public static long LUCKY_NUMBER = 777;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public static String formatId(long id) {
return String.format("%08d", id);
}
}
変換先クラス(EmployeePage)public class EmployeePage {
private String empId;
private String name;
public String getEmpId() {
return empId;
}
public void setEmpId(String empId) {
this.empId = empId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public interface EmployeeDxo {
@ConversionRule("empId : id")
EmployeePage convert(Employee employee);
} @ConversionRule("'empId' : id, 'name' : name != null ? name : ''")
EmployeePage convert(Employee employee); @ConversionRule("'empId' : id," +
"'name' : id == @xxx.dxo." +
"Employee@LUCKY_NUMBER ? name+'様' : name")
EmployeePage convert(Employee employee); @ConversionRule("'empId' : @xxx.dxo.Employee@formatId(id), " +
"'name' : name")
EmployeePage convertWithFormat(Employee employee);