Class QAbstractRoleMapping<S extends AbstractRoleType,Q extends QAbstractRole<R>,R extends MAbstractRole>
java.lang.Object
com.evolveum.midpoint.repo.sqlbase.mapping.QueryModelMapping<S,Q,R>
com.evolveum.midpoint.repo.sqlbase.mapping.QueryTableMapping<S,Q,R>
com.evolveum.midpoint.repo.sqale.mapping.SqaleTableMapping<S,Q,R>
com.evolveum.midpoint.repo.sqale.qmodel.object.QObjectMapping<S,Q,R>
com.evolveum.midpoint.repo.sqale.qmodel.object.QAssignmentHolderMapping<S,Q,R>
com.evolveum.midpoint.repo.sqale.qmodel.focus.QFocusMapping<S,Q,R>
com.evolveum.midpoint.repo.sqale.qmodel.role.QAbstractRoleMapping<S,Q,R>
- Type Parameters:
S
- schema type for the abstract role objectQ
- type of entity pathR
- row type related to theQAbstractRoleMapping
- All Implemented Interfaces:
SqaleMappingMixin<S,
Q, R>
- Direct Known Subclasses:
QArchetypeMapping
,QOrgMapping
,QRoleMapping
,QServiceMapping
public class QAbstractRoleMapping<S extends AbstractRoleType,Q extends QAbstractRole<R>,R extends MAbstractRole>
extends QFocusMapping<S,Q,R>
Mapping between
QAbstractRole
and AbstractRoleType
.-
Field Summary
Fields inherited from class com.evolveum.midpoint.repo.sqlbase.mapping.QueryModelMapping
logger
-
Constructor Summary
ModifierConstructorDescriptionprotected
QAbstractRoleMapping
(@NotNull String tableName, @NotNull String defaultAliasName, @NotNull Class<S> schemaType, @NotNull Class<Q> queryType, @NotNull SqaleRepoContext repositoryContext) -
Method Summary
Modifier and TypeMethodDescriptionstatic QAbstractRoleMapping<?,
?, ?> static QAbstractRoleMapping<?,
?, ?> initAbstractRoleMapping
(@NotNull SqaleRepoContext repositoryContext) protected Q
newAliasInstance
(String alias) Method returning new instance ofEntityPath
- to be implemented by sub-mapping.void
storeRelatedEntities
(R row, S schemaObject, @NotNull JdbcSession jdbcSession) Stores other entities related to the main object row like containers, references, etc.toRowObjectWithoutFullObject
(S abstractRole, JdbcSession jdbcSession) Override this to fill additional row attributes after calling this super version.Methods inherited from class com.evolveum.midpoint.repo.sqale.qmodel.focus.QFocusMapping
fullObjectItemsToSkip, getFocusMapping, initFocusMapping, newRowObject, selectExpressions, toSchemaObject, updateGetOptions
Methods inherited from class com.evolveum.midpoint.repo.sqale.qmodel.object.QAssignmentHolderMapping
getAssignmentHolderMapping, initAssignmentHolderMapping
Methods inherited from class com.evolveum.midpoint.repo.sqale.qmodel.object.QObjectMapping
getObjectMapping, initObjectMapping, isReindexSupported, setFullObject, toSchemaObjectCompleteSafe
Methods inherited from class com.evolveum.midpoint.repo.sqale.mapping.SqaleTableMapping
addExtensionMapping, binaryMapper, booleanMapper, createFullObject, createRowTransformer, enumMapper, insert, integerMapper, multiPolyStringMapper, multiStringMapper, multiUriMapper, multiValueMapper, needsInitialization, objectReference, objectReference, objectTypeToQName, parseSchemaObject, parseSchemaObject, polyStringMapper, processCacheableRelation, processCacheableUri, processCacheableUri, processCacheableUris, processExtensionColumns, processExtensions, repositoryContext, resolveIdToUri, resolveReferenceNames, resolveUriIdToQName, schemaTypeToObjectType, setPolyString, setReference, storeRefs, stringMapper, stringsToArray, timestampMapper, toSchemaObject, toSchemaObjectComplete, toSchemaObjectInternal, uriMapper, uuidMapper
Methods inherited from class com.evolveum.midpoint.repo.sqlbase.mapping.QueryTableMapping
addDetailFetchMapper, addExtensionColumn, defaultAlias, defaultAliasName, detailFetchMappers, getExtensionColumns, joinOn, longMapper, newAlias, prismContext, selectExpressionsWithCustomColumns, tableName, toString
Methods inherited from class com.evolveum.midpoint.repo.sqlbase.mapping.QueryModelMapping
addItemMapping, addRelationResolver, getItemMapper, getItemMappings, getRelationResolver, itemDefinition, itemMapper, queryType, relationResolver, schemaType
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface com.evolveum.midpoint.repo.sqale.mapping.SqaleMappingMixin
addAuditRefMapping, addContainerTableMapping, addExtensionMapping, addItemMapping, addNestedMapping, addRefMapping, addRefMapping, addRelationResolver, afterModify, queryType
-
Field Details
-
DEFAULT_ALIAS_NAME
- See Also:
-
-
Constructor Details
-
QAbstractRoleMapping
-
-
Method Details
-
initAbstractRoleMapping
public static QAbstractRoleMapping<?,?, initAbstractRoleMapping?> (@NotNull @NotNull SqaleRepoContext repositoryContext) -
getAbstractRoleMapping
-
newAliasInstance
Description copied from class:QueryTableMapping
Method returning new instance ofEntityPath
- to be implemented by sub-mapping. This will create entity path without any extension columns, seeQueryTableMapping.newAlias(java.lang.String)
for that.- Overrides:
newAliasInstance
in classQFocusMapping<S extends AbstractRoleType,
Q extends QAbstractRole<R>, R extends MAbstractRole>
-
toRowObjectWithoutFullObject
Description copied from class:QObjectMapping
Override this to fill additional row attributes after calling this super version. *This must be called with active JDBC session* so it can create newQUri
rows. As this is intended for inserts *DO NOT* setMObject.objectType
to any value, it must be NULL otherwise the DB will complain about the value for the generated column. OID may be null, hence the method does NOT create any sub-entities, seeQObjectMapping.storeRelatedEntities(MObject, ObjectType, JdbcSession)
. Try to keep order of fields here, in M-class (MObject for this one) and in SQL the same.- Overrides:
toRowObjectWithoutFullObject
in classQFocusMapping<S extends AbstractRoleType,
Q extends QAbstractRole<R>, R extends MAbstractRole>
-
storeRelatedEntities
public void storeRelatedEntities(@NotNull R row, @NotNull S schemaObject, @NotNull @NotNull JdbcSession jdbcSession) throws SchemaException Description copied from class:QObjectMapping
Stores other entities related to the main object row like containers, references, etc. This is not part ofQObjectMapping.toRowObjectWithoutFullObject(S, com.evolveum.midpoint.repo.sqlbase.JdbcSession)
because it requires known OID which is not assured before calling that method. *Always call this super method first in overriding methods.*- Overrides:
storeRelatedEntities
in classQFocusMapping<S extends AbstractRoleType,
Q extends QAbstractRole<R>, R extends MAbstractRole> - Parameters:
row
- master row for the added object("aggregate root")schemaObject
- schema objects for which the details are storedjdbcSession
- JDBC session used to insert related rows- Throws:
SchemaException
-