package com.evolveum.midpoint.repo.sql.util; import org.hibernate.transform.BasicTransformerAdapter; import org.hibernate.transform.ResultTransformer; import org.jetbrains.annotations.NotNull; import java.io.Serializable; import java.util.Arrays; import java.util.Collections; import java.util.List; /** * @author lazyman * @author mederly */ public class GetContainerableResult implements Serializable { public static final ResultStyle RESULT_STYLE = new ResultStyle() { @Override public ResultTransformer getResultTransformer() { return new BasicTransformerAdapter() { @Override public Object transformTuple(Object[] tuple, String[] aliases) { return new GetContainerableResult((String) tuple[0], (byte[]) tuple[2]); } }; } @Override public List<String> getIdentifiers(String rootAlias) { return Arrays.asList(rootAlias + ".ownerOid", rootAlias + ".id"); } @Override public List<String> getContentAttributes(String rootAlias) { return Collections.singletonList(rootAlias + ".fullObject"); } }; private final String ownerOid; private final byte[] fullObject; private GetContainerableResult(@NotNull String ownerOid, @NotNull byte[] fullObject) { this.fullObject = fullObject; this.ownerOid = ownerOid; } public byte[] getFullObject() { return fullObject; } public String getOwnerOid() { return ownerOid; } }