-
Notifications
You must be signed in to change notification settings - Fork 188
/
SqaleItemRelationResolver.java
29 lines (26 loc) · 1.31 KB
/
SqaleItemRelationResolver.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
/*
* 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.mapping;
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.repo.sqale.update.SqaleUpdateContext;
import com.evolveum.midpoint.repo.sqlbase.mapping.ItemRelationResolver;
import com.evolveum.midpoint.repo.sqlbase.querydsl.FlexibleRelationalPathBase;
/**
* Extension of {@link ItemRelationResolver}, this is a common contract for resolver
* that helps with navigating over complex (non-single) item paths for both query
* and application of delta modification.
*/
public interface SqaleItemRelationResolver<Q extends FlexibleRelationalPathBase<R>, R>
extends ItemRelationResolver<Q, R> {
/**
* Resolves current query context to a new context (mapping is always part of context).
* The information about the resolved item is captured in the instance resolver already
* in a manner that is specific for various types of resolution (JOIN or nested mapping).
* Optional {@link ItemPath} is provided for cases when container ID is necessary.
*/
SqaleUpdateContext<?, ?, ?> resolve(SqaleUpdateContext<?, Q, R> context, ItemPath itemPath);
}