Örnek
Elimizde şöyle bir kod olsun
public class FooDto {char reference;}public class Foo {MyEnum reference;public Foo (String str) {...}}public enum MyEnum {A('a'), B('b');private final char value;private MyEnum(char ch) { this.value = ch;}public toChar () { return value;}public static MyEnum valueOf (char ch) {for (MyEnum e : values()) {if (e.toChar () == ch) {return e;}}}}
Şöyle yaparız. Burada Foo nesnemiz için @ObjectFactory ile bir factory metodu tanımlıyoruz. Ayrıca Dto'dan gelen char tipini MyEnum tipine eşlemek için createMyEnum metodunu kodluyoruz
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.ObjectFactory;
import org.mapstruct.ReportingPolicy;
@Mapper(unmappedTargetPolicy = ReportingPolicy.ERROR) public interface FooMapper { Foo toFoo(FooDto dto); @ObjectFactory default Foo createFoo() { new Foo ("test"); } default MyEnum createMyEnum(char c){ return MyEnum.valueOf(c); } }
Hiç yorum yok:
Yorum Gönder