Class SqaleNestedMapping<S,Q extends FlexibleRelationalPathBase<R>,R>  
java.lang.Object
com.evolveum.midpoint.repo.sqlbase.mapping.QueryModelMapping<S,Q,R>
  
com.evolveum.midpoint.repo.sqale.mapping.SqaleNestedMapping<S,Q,R>  
- Type Parameters:
- S- schema type for the nested container
- Q- type of entity path
- R- row type related to the- SqaleNestedMapping
- All Implemented Interfaces:
- SqaleMappingMixin<S,- Q, - R> 
public class SqaleNestedMapping<S,Q extends FlexibleRelationalPathBase<R>,R>  
extends QueryModelMapping<S,Q,R>
implements SqaleMappingMixin<S,Q,R>    
Sqale implementation for nested mapping with support for sqale specific types.
 This allows for fluent calls of methods like 
addRefMapping(javax.xml.namespace.QName, com.evolveum.midpoint.repo.sqale.qmodel.ref.QReferenceMapping<TQ, TR, Q, R>)
 which depend on sqale-specific types like QReferenceMapping in this example.
 This extends from sqlbase QueryModelMapping because this is NOT whole table mapping
 so it can't extend from SqaleTableMapping.- 
Field SummaryFields inherited from class com.evolveum.midpoint.repo.sqlbase.mapping.QueryModelMappinglogger
- 
Constructor SummaryConstructorsModifierConstructorDescriptionprotectedSqaleNestedMapping(@NotNull Class<S> schemaType, @NotNull Class<Q> queryType) 
- 
Method SummaryModifier and TypeMethodDescriptionaddItemMapping(@NotNull QName itemName, @NotNull ItemSqlMapper<Q, R> itemMapper) Adds information how item (attribute) from schema type is mapped to query, especially for condition creating purposes.<TQ extends QReference<TR,R>, TR extends MReference> 
 SqaleNestedMapping<S,Q, R> addRefMapping(@NotNull QName itemName, @NotNull QReferenceMapping<TQ, TR, Q, R> referenceMapping) Defines multi-value reference mapping (refs in table) for both query and modifications.addRefMapping(@NotNull QName itemName, @NotNull Function<Q, UuidPath> rootToOidPath, @Nullable Function<Q, com.querydsl.core.types.dsl.EnumPath<MObjectType>> rootToTypePath, @Nullable Function<Q, com.querydsl.core.types.dsl.NumberPath<Integer>> rootToRelationIdPath, @NotNull Supplier<QueryTableMapping<TS, TQ, TR>> targetMappingSupplier) Defines single-value reference mapping for both query and modifications, columns embedded in the table.Methods inherited from class com.evolveum.midpoint.repo.sqlbase.mapping.QueryModelMappingaddRelationResolver, getItemMapper, getItemMappings, getRelationResolver, itemDefinition, itemMapper, queryType, relationResolver, schemaTypeMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.evolveum.midpoint.repo.sqale.mapping.SqaleMappingMixinaddAuditRefMapping, addContainerTableMapping, addExtensionMapping, addNestedMapping, addRelationResolver, afterModify, queryType
- 
Constructor Details- 
SqaleNestedMapping
 
- 
- 
Method Details- 
addItemMappingpublic SqaleNestedMapping<S,Q, addItemMappingR> (@NotNull @NotNull QName itemName, @NotNull @NotNull ItemSqlMapper<Q, R> itemMapper) Description copied from class:QueryModelMappingAdds information how item (attribute) from schema type is mapped to query, especially for condition creating purposes. This is not usable for complex item path resolution, seeQueryModelMapping.addRelationResolver(QName, ItemRelationResolver)for that purpose. TheItemSqlMapperworks as a factory forFilterProcessorthat can processObjectFilterrelated to theQNamespecified as the first parameter. It is not possible to use filter processor directly because at the time of mapping specification we don't have the actual query path representing the entity or the column. These paths are non-static properties of query class instances. TheItemSqlMapperalso provides so-called "primary mapping" to a column for ORDER BY part of the filter. But there can be additional column mappings specified as for some types (e.g. poly-strings) there may be other than 1-to-1 mapping. Construction of theItemSqlMapperis typically simplified by static methods#mapper()provided on various*ItemFilterProcessorclasses. This works as a "processor factory-factory" and makes table mapping specification simpler.- Specified by:
- addItemMappingin interface- SqaleMappingMixin<S,- Q extends FlexibleRelationalPathBase<R>, - R> 
- Overrides:
- addItemMappingin class- QueryModelMapping<S,- Q extends FlexibleRelationalPathBase<R>, - R> 
- Parameters:
- itemName- item name from schema type (see- F_*constants on schema types)
- itemMapper- mapper wrapping the information about column mappings working also as a factory for- FilterProcessor
 
- 
addRefMappingpublic <TQ extends QReference<TR,R>, SqaleNestedMapping<S,TR extends MReference> Q, addRefMappingR> (@NotNull @NotNull QName itemName, @NotNull @NotNull QReferenceMapping<TQ, TR, Q, R> referenceMapping) Description copied from interface:SqaleMappingMixinDefines multi-value reference mapping (refs in table) for both query and modifications.- Specified by:
- addRefMappingin interface- SqaleMappingMixin<S,- Q extends FlexibleRelationalPathBase<R>, - R> 
 
- 
addRefMappingpublic <TS,TQ extends QObject<TR>, SqaleNestedMapping<S,TR extends MObject> Q, addRefMappingR> (@NotNull @NotNull QName itemName, @NotNull @NotNull Function<Q, UuidPath> rootToOidPath, @Nullable @Nullable Function<Q, com.querydsl.core.types.dsl.EnumPath<MObjectType>> rootToTypePath, @Nullable @Nullable Function<Q, com.querydsl.core.types.dsl.NumberPath<Integer>> rootToRelationIdPath, @NotNull @NotNull Supplier<QueryTableMapping<TS, TQ, TR>> targetMappingSupplier) Description copied from interface:SqaleMappingMixinDefines single-value reference mapping for both query and modifications, columns embedded in the table.- Specified by:
- addRefMappingin interface- SqaleMappingMixin<S,- Q extends FlexibleRelationalPathBase<R>, - R> 
 
 
-