/
QLookupTableRowMapping.java
55 lines (45 loc) · 2.15 KB
/
QLookupTableRowMapping.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/*
* Copyright (C) 2010-2021 Evolveum and contributors
*
* This work is dual-licensed under the Apache License 2.0
* and European Union Public License. See LICENSE file for details.
*/
package com.evolveum.midpoint.repo.sqale.qmodel.lookuptable;
import static com.evolveum.midpoint.repo.sqlbase.mapping.item.SimpleItemFilterProcessor.stringMapper;
import static com.evolveum.midpoint.xml.ns._public.common.common_3.LookupTableRowType.*;
import com.evolveum.midpoint.repo.sqale.qmodel.SqaleTableMapping;
import com.evolveum.midpoint.repo.sqlbase.SqlTransformerContext;
import com.evolveum.midpoint.repo.sqlbase.mapping.item.PolyStringItemFilterProcessor;
import com.evolveum.midpoint.repo.sqlbase.mapping.item.TimestampItemFilterProcessor;
import com.evolveum.midpoint.xml.ns._public.common.common_3.LookupTableRowType;
/**
* Mapping between {@link QLookupTableRow} and {@link LookupTableRowType}.
*/
public class QLookupTableRowMapping
extends SqaleTableMapping<LookupTableRowType, QLookupTableRow, MLookupTableRow> {
public static final String DEFAULT_ALIAS_NAME = "ltr";
public static final QLookupTableRowMapping INSTANCE = new QLookupTableRowMapping();
private QLookupTableRowMapping() {
super(QLookupTableRow.TABLE_NAME, DEFAULT_ALIAS_NAME,
LookupTableRowType.class, QLookupTableRow.class);
addItemMapping(F_KEY, stringMapper(path(q -> q.rowKey)));
addItemMapping(F_LABEL, PolyStringItemFilterProcessor.mapper(
path(q -> q.labelOrig), path(q -> q.labelNorm)));
addItemMapping(F_VALUE, stringMapper(path(q -> q.rowValue)));
addItemMapping(F_LAST_CHANGE_TIMESTAMP,
TimestampItemFilterProcessor.mapper(path(q -> q.lastChangeTimestamp)));
}
@Override
protected QLookupTableRow newAliasInstance(String alias) {
return new QLookupTableRow(alias);
}
@Override
public LookupTableRowTransformer createTransformer(
SqlTransformerContext transformerContext) {
return new LookupTableRowTransformer(transformerContext, this);
}
@Override
public MLookupTableRow newRowObject() {
return new MLookupTableRow();
}
}