Skip to content

Commit

Permalink
SqlTransformer completely gone, all is in mapping now, audit included
Browse files Browse the repository at this point in the history
  • Loading branch information
virgo47 committed Apr 30, 2021
1 parent a070797 commit a52a7f8
Show file tree
Hide file tree
Showing 29 changed files with 369 additions and 569 deletions.
Expand Up @@ -18,7 +18,6 @@
import com.evolveum.midpoint.repo.sqlbase.SqlRepoContext;
import com.evolveum.midpoint.repo.sqlbase.filtering.FilterProcessor;
import com.evolveum.midpoint.repo.sqlbase.mapping.QueryTableMapping;
import com.evolveum.midpoint.repo.sqlbase.mapping.SqlTransformer;
import com.evolveum.midpoint.repo.sqlbase.querydsl.FlexibleRelationalPathBase;

public class SqaleQueryContext<S, Q extends FlexibleRelationalPathBase<R>, R>
Expand Down Expand Up @@ -48,11 +47,6 @@ private SqaleQueryContext(
super(entityPath, mapping, sqlRepoContext, transformerSupport, query);
}

@Override
protected SqlTransformer<S, Q, R> createTransformer() {
return entityPathMapping.createTransformer(transformerSupport);
}

@Override
public FilterProcessor<InOidFilter> createInOidFilter(SqlQueryContext<?, ?, ?> context) {
return new InOidFilterProcessor(context);
Expand Down
Expand Up @@ -184,8 +184,7 @@ private <S extends ObjectType> S readByOid(
throw new ObjectNotFoundException(schemaType, oid.toString());
}

return rootMapping.createTransformer(transformerSupport)
.toSchemaObject(result, root, options);
return rootMapping.toSchemaObject(result, root, options);
}

@Override
Expand Down Expand Up @@ -416,8 +415,7 @@ RootUpdateContext<S, Q, R> prepareUpdateContext(
throw new ObjectNotFoundException(schemaType, oid.toString());
}

S object = rootMapping.createTransformer(transformerSupport)
.toSchemaObject(result, root, Collections.emptyList());
S object = rootMapping.toSchemaObject(result, root, Collections.emptyList());

R rootRow = rootMapping.newRowObject();
rootRow.oid = oid;
Expand Down
Expand Up @@ -14,7 +14,6 @@
import com.evolveum.midpoint.repo.sqale.qmodel.object.QObjectMapping;
import com.evolveum.midpoint.repo.sqale.qmodel.ref.QObjectReferenceMapping;
import com.evolveum.midpoint.repo.sqlbase.JdbcSession;
import com.evolveum.midpoint.repo.sqlbase.SqlTransformerSupport;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectTemplateType;

/**
Expand All @@ -39,12 +38,6 @@ protected QObjectTemplate newAliasInstance(String alias) {
return new QObjectTemplate(alias);
}

@Override
public QObjectTemplateMapping createTransformer(
SqlTransformerSupport transformerSupport) {
return this;
}

@Override
public MObject newRowObject() {
return new MObject();
Expand Down
Expand Up @@ -18,8 +18,6 @@
import com.querydsl.sql.ColumnMetadata;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.evolveum.midpoint.repo.sqale.SqaleTransformerSupport;
import com.evolveum.midpoint.repo.sqale.delta.item.*;
Expand All @@ -37,7 +35,6 @@
import com.evolveum.midpoint.repo.sqlbase.filtering.item.SimpleItemFilterProcessor;
import com.evolveum.midpoint.repo.sqlbase.filtering.item.TimestampItemFilterProcessor;
import com.evolveum.midpoint.repo.sqlbase.mapping.QueryTableMapping;
import com.evolveum.midpoint.repo.sqlbase.mapping.SqlTransformer;
import com.evolveum.midpoint.repo.sqlbase.querydsl.FlexibleRelationalPathBase;
import com.evolveum.midpoint.repo.sqlbase.querydsl.UuidPath;
import com.evolveum.midpoint.schema.GetOperationOptions;
Expand All @@ -59,9 +56,7 @@
*/
public abstract class SqaleTableMapping<S, Q extends FlexibleRelationalPathBase<R>, R>
extends QueryTableMapping<S, Q, R>
implements SqaleMappingMixin<S, Q, R>, SqlTransformer<S, Q, R> {

protected final Logger logger = LoggerFactory.getLogger(getClass());
implements SqaleMappingMixin<S, Q, R> {

protected SqaleTableMapping(
@NotNull String tableName,
Expand Down Expand Up @@ -105,7 +100,8 @@ public <MS> SqaleItemSqlMapper<MS, Q, R> integerMapper(
* @param <MS> mapped schema type, see javadoc in {@link QueryTableMapping}
*/
@Override
protected <MS> SqaleItemSqlMapper<MS, Q, R> booleanMapper(Function<Q, BooleanPath> rootToQueryItem) {
protected <MS> SqaleItemSqlMapper<MS, Q, R> booleanMapper(
Function<Q, BooleanPath> rootToQueryItem) {
return new SqaleItemSqlMapper<>(
ctx -> new SimpleItemFilterProcessor<>(ctx, rootToQueryItem),
ctx -> new SimpleItemDeltaProcessor<>(ctx, rootToQueryItem),
Expand Down Expand Up @@ -242,7 +238,8 @@ protected ObjectReferenceType objectReferenceType(

return new ObjectReferenceType()
.oid(oid)
.type(SqaleTransformerSupport.getInstance().schemaClassToQName(repoObjectType.getSchemaType()))
.type(SqaleTransformerSupport.getInstance()
.schemaClassToQName(repoObjectType.getSchemaType()))
.description(targetName)
.targetName(targetName);
}
Expand Down Expand Up @@ -287,7 +284,8 @@ protected Integer processCacheableUri(String uri) {
/** Returns ID for URI creating new cache row in DB as needed. */
protected Integer processCacheableUri(QName qName) {
return qName != null
? SqaleTransformerSupport.getInstance().processCacheableUri(QNameUtil.qNameToUri(qName))
? SqaleTransformerSupport.getInstance()
.processCacheableUri(QNameUtil.qNameToUri(qName))
: null;
}

Expand Down
Expand Up @@ -12,7 +12,6 @@
import com.evolveum.midpoint.repo.sqale.qmodel.QOwnedByMapping;
import com.evolveum.midpoint.repo.sqale.qmodel.SqaleTableMapping;
import com.evolveum.midpoint.repo.sqlbase.JdbcSession;
import com.evolveum.midpoint.repo.sqlbase.SqlTransformerSupport;

/**
* Mapping between {@link QContainer} and {@link Containerable}.
Expand Down Expand Up @@ -55,10 +54,6 @@ public R newRowObject(OR ownerRow) {
"Container bean creation for owner row called on abstract container mapping");
}

public QContainerMapping<S, Q, R, OR> createTransformer(SqlTransformerSupport transformerSupport) {
return this;
}

@Override
public R newRowObject() {
//noinspection unchecked
Expand Down
Expand Up @@ -30,7 +30,6 @@
import com.evolveum.midpoint.repo.sqale.qmodel.ref.QObjectReferenceMapping;
import com.evolveum.midpoint.repo.sqlbase.JdbcSession;
import com.evolveum.midpoint.repo.sqlbase.SqlTransformerSupport;
import com.evolveum.midpoint.repo.sqlbase.mapping.SqlTransformer;
import com.evolveum.midpoint.schema.GetOperationOptions;
import com.evolveum.midpoint.schema.SelectorOptions;
import com.evolveum.midpoint.schema.util.ObjectTypeUtil;
Expand Down Expand Up @@ -182,11 +181,6 @@ protected Q newAliasInstance(String alias) {
return (Q) new QObject<>(MObject.class, alias);
}

@Override
public SqlTransformer<S, Q, R> createTransformer(SqlTransformerSupport transformerSupport) {
return this;
}

@Override
public R newRowObject() {
//noinspection unchecked
Expand Down
Expand Up @@ -15,7 +15,6 @@
import com.evolveum.midpoint.repo.sqale.qmodel.QOwnedByMapping;
import com.evolveum.midpoint.repo.sqale.qmodel.SqaleTableMapping;
import com.evolveum.midpoint.repo.sqlbase.JdbcSession;
import com.evolveum.midpoint.repo.sqlbase.SqlTransformerSupport;
import com.evolveum.midpoint.repo.sqlbase.querydsl.FlexibleRelationalPathBase;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType;

Expand Down Expand Up @@ -61,11 +60,6 @@ protected Q newAliasInstance(String alias) {
return (Q) new QReference<>(MReference.class, alias);
}

public QReferenceMapping<Q, R, OQ, OR> createTransformer(
SqlTransformerSupport transformerSupport) {
return this;
}

/** Defines a contract for creating the reference for the provided owner row. */
public R newRowObject(OR ownerRow) {
throw new UnsupportedOperationException(
Expand Down
Expand Up @@ -12,7 +12,6 @@

import com.evolveum.midpoint.repo.sqale.qmodel.object.QObjectMapping;
import com.evolveum.midpoint.repo.sqlbase.JdbcSession;
import com.evolveum.midpoint.repo.sqlbase.SqlTransformerSupport;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ReportDataType;

/**
Expand Down Expand Up @@ -40,11 +39,6 @@ protected QReportData newAliasInstance(String alias) {
return new QReportData(alias);
}

@Override
public QReportDataMapping createTransformer(SqlTransformerSupport transformerSupport) {
return this;
}

@Override
public MReportData newRowObject() {
return new MReportData();
Expand Down
Expand Up @@ -10,7 +10,6 @@

import com.evolveum.midpoint.repo.sqale.qmodel.object.QObjectMapping;
import com.evolveum.midpoint.repo.sqlbase.JdbcSession;
import com.evolveum.midpoint.repo.sqlbase.SqlTransformerSupport;
import com.evolveum.midpoint.xml.ns._public.common.common_3.JasperReportEngineConfigurationType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ReportType;

Expand Down Expand Up @@ -40,11 +39,6 @@ protected QReport newAliasInstance(String alias) {
return new QReport(alias);
}

@Override
public QReportMapping createTransformer(SqlTransformerSupport transformerSupport) {
return this;
}

@Override
public MReport newRowObject() {
return new MReport();
Expand Down
Expand Up @@ -13,7 +13,6 @@
import com.evolveum.midpoint.repo.sqale.qmodel.object.QObjectMapping;
import com.evolveum.midpoint.repo.sqale.qmodel.ref.QObjectReferenceMapping;
import com.evolveum.midpoint.repo.sqlbase.JdbcSession;
import com.evolveum.midpoint.repo.sqlbase.SqlTransformerSupport;
import com.evolveum.midpoint.xml.ns._public.common.common_3.OperationalStateType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ResourceBusinessConfigurationType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ResourceType;
Expand Down Expand Up @@ -51,11 +50,6 @@ protected QResource newAliasInstance(String alias) {
return new QResource(alias);
}

@Override
public QResourceMapping createTransformer(SqlTransformerSupport transformerSupport) {
return this;
}

@Override
public MResource newRowObject() {
return new MResource();
Expand Down
Expand Up @@ -12,7 +12,6 @@

import com.evolveum.midpoint.repo.sqale.qmodel.object.QObjectMapping;
import com.evolveum.midpoint.repo.sqlbase.JdbcSession;
import com.evolveum.midpoint.repo.sqlbase.SqlTransformerSupport;
import com.evolveum.midpoint.util.MiscUtil;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowType;

Expand Down Expand Up @@ -54,12 +53,6 @@ protected QShadow newAliasInstance(String alias) {
return new QShadow(alias);
}

@Override
public QShadowMapping createTransformer(
SqlTransformerSupport transformerSupport) {
return this;
}

@Override
public MShadow newRowObject() {
return new MShadow();
Expand Down
Expand Up @@ -10,7 +10,6 @@

import com.evolveum.midpoint.repo.sqale.qmodel.object.QObjectMapping;
import com.evolveum.midpoint.repo.sqlbase.JdbcSession;
import com.evolveum.midpoint.repo.sqlbase.SqlTransformerSupport;
import com.evolveum.midpoint.util.MiscUtil;
import com.evolveum.midpoint.xml.ns._public.common.common_3.TaskType;

Expand Down Expand Up @@ -62,12 +61,6 @@ protected QTask newAliasInstance(String alias) {
return new QTask(alias);
}

@Override
public QTaskMapping createTransformer(
SqlTransformerSupport transformerSupport) {
return this;
}

@Override
public MTask newRowObject() {
return new MTask();
Expand Down
Expand Up @@ -179,9 +179,7 @@ private Long insertAuditEventRecord(
JdbcSession jdbcSession, AuditEventRecord record) {
QAuditEventRecordMapping aerMapping = QAuditEventRecordMapping.INSTANCE;
QAuditEventRecord aer = aerMapping.defaultAlias();
MAuditEventRecord aerBean = aerMapping
.createTransformer(transformerSupport)
.from(record);
MAuditEventRecord aerBean = aerMapping.from(record);
SQLInsertClause insert = jdbcSession.newInsert(aer).populate(aerBean);

Map<String, ColumnMetadata> customColumns = aerMapping.getExtensionColumns();
Expand Down
Expand Up @@ -12,7 +12,6 @@
import com.evolveum.midpoint.repo.sqlbase.SqlRepoContext;
import com.evolveum.midpoint.repo.sqlbase.SqlTransformerSupport;
import com.evolveum.midpoint.repo.sqlbase.mapping.QueryTableMapping;
import com.evolveum.midpoint.repo.sqlbase.mapping.SqlTransformer;
import com.evolveum.midpoint.repo.sqlbase.querydsl.FlexibleRelationalPathBase;

/**
Expand Down Expand Up @@ -47,11 +46,6 @@ private AuditSqlQueryContext(
super(entityPath, mapping, sqlRepoContext, transformerSupport, query);
}

@Override
protected SqlTransformer<S, Q, R> createTransformer() {
return entityPathMapping.createTransformer(transformerSupport);
}

@Override
protected <TS, TQ extends FlexibleRelationalPathBase<TR>, TR>
SqlQueryContext<TS, TQ, TR> deriveNew(TQ newPath, QueryTableMapping<TS, TQ, TR> newMapping) {
Expand Down
Expand Up @@ -9,22 +9,9 @@
import java.time.Instant;
import java.util.*;

import com.evolveum.midpoint.repo.sql.audit.mapping.AuditEventRecordSqlTransformer;
import com.evolveum.midpoint.repo.sql.audit.querymodel.QAuditEventRecord;

/**
* Querydsl "row bean" type related to {@link QAuditEventRecord}.
* <p>
* Design notes (TODO reconsider in 2021 and possibly remove if settled):
* This bean is super stupid for now.
* It can have getters/setters and handle more transformations and trimming (in setters),
* but at this moment this is left to transformation code like in {@link AuditEventRecordSqlTransformer}.
* I'd not suggest to move complete transformations here, but small conversions and trimming could
* be here - but how to do it reasonably without converting all fields to private + set/get methods?
* Can additional setter indicate conversion/trimming duties?
* What about methods like {@code SqlTransformerBase.trim()}, should we create common supertype
* to make it easy to call them in M-beans? Or should we use RUtil?
*/
/** Querydsl "row bean" type related to {@link QAuditEventRecord}. */
@SuppressWarnings("unused")
public class MAuditEventRecord {

Expand Down

0 comments on commit a52a7f8

Please sign in to comment.