1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.mybatis.dynamic.sql.util;
17
18 import java.util.Objects;
19 import java.util.function.Supplier;
20
21 import org.mybatis.dynamic.sql.SqlColumn;
22
23 public class PropertyWhenPresentMapping extends PropertyMapping {
24 private final Supplier<?> valueSupplier;
25
26 private PropertyWhenPresentMapping(SqlColumn<?> column, String property, Supplier<?> valueSupplier) {
27 super(column, property);
28 this.valueSupplier = Objects.requireNonNull(valueSupplier);
29 }
30
31 public boolean shouldRender() {
32 return valueSupplier.get() != null;
33 }
34
35 @Override
36 public <R> R accept(ColumnMappingVisitor<R> visitor) {
37 return visitor.visit(this);
38 }
39
40 public static PropertyWhenPresentMapping of(SqlColumn<?> column, String property, Supplier<?> valueSupplier) {
41 return new PropertyWhenPresentMapping(column, property, valueSupplier);
42 }
43 }