package com.intel.mtwilson.tpm.endorsement.jdbi; import com.intel.mtwilson.tpm.endorsement.model.TpmEndorsement; import com.intel.dcsg.cpg.io.UUID; import com.intel.mtwilson.jdbi.util.UUIDArgument; import java.io.Closeable; import java.util.List; import java.util.Set; import org.skife.jdbi.v2.sqlobject.Bind; import org.skife.jdbi.v2.sqlobject.BindBean; import org.skife.jdbi.v2.sqlobject.SqlQuery; import org.skife.jdbi.v2.sqlobject.SqlUpdate; import org.skife.jdbi.v2.sqlobject.customizers.RegisterArgumentFactory; import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper; import org.skife.jdbi.v2.sqlobject.stringtemplate.UseStringTemplate3StatementLocator; import org.skife.jdbi.v2.unstable.BindIn; /* * Copyright (C) 2014 Intel Corporation * All rights reserved. */ /** * <pre> CREATE TABLE mw_tpm_endorsement ( id char(36) NOT NULL, issuer varchar(255) NOT NULL, revoked boolean NOT NULL DEFAULT FALSE, certificate blob NOT NULL, comment text NULL, PRIMARY KEY (id) ); * </pre> * @author jbuhacoff */ @UseStringTemplate3StatementLocator @RegisterArgumentFactory({UUIDArgument.class}) @RegisterMapper({TpmEndorsementResultMapper.class,}) public interface TpmEndorsementDAO extends Closeable { @SqlUpdate("insert into mw_tpm_endorsement (id, hardware_uuid, issuer, revoked, certificate, comment) values (:id, :hardwareUuid, :issuer, :revoked, :certificate, :comment)") void insertTpmEndorsement(@BindBean TpmEndorsement TpmEndorsementRecord); // void insertTpmEndorsement(@Bind("id") String id, @Bind("issuer") String issuer, @Bind("impl") String impl, @Bind("certificate_type") String certificateType, @Bind("certificate") byte[] certificate, @Bind("comment") String comment); @SqlUpdate("update mw_tpm_endorsement set hardware_uuid=:hardwareUuid, issuer=:issuer, revoked=:revoked, certificate=:certificate, comment=:comment where id=:id") void updateTpmEndorsement(@BindBean TpmEndorsement TpmEndorsementRecord); // void updateTpmEndorsement(@Bind("id") String id, @Bind("issuer") String issuer, @Bind("impl") String impl, @Bind("certificate_type") String certificateType, @Bind("certificate") byte[] certificate, @Bind("comment") String comment); @SqlQuery("select id, hardware_uuid, issuer, revoked, certificate, comment from mw_tpm_endorsement") List<TpmEndorsement> findAllTpmEndorsement(); @SqlQuery("select id, hardware_uuid, issuer, revoked, certificate, comment from mw_tpm_endorsement where id=:id") TpmEndorsement findTpmEndorsementById(@Bind("id") UUID id); @SqlQuery("select id, hardware_uuid, issuer, revoked, certificate, comment from mw_tpm_endorsement where id in ( <ids> )") List<TpmEndorsement> findTpmEndorsementByIds(@BindIn("ids") Set<String> ids); @SqlQuery("select id, hardware_uuid, issuer, revoked, certificate, comment from mw_tpm_endorsement where hardware_uuid=:hardware_uuid") TpmEndorsement findTpmEndorsementByHardwareUuidEqualTo(@Bind("hardware_uuid") String hardwareUuid); @SqlQuery("select id, hardware_uuid, issuer, revoked, certificate, comment from mw_tpm_endorsement where issuer=:issuer") TpmEndorsement findTpmEndorsementByIssuerEqualTo(@Bind("issuer") String issuer); @SqlQuery("select id, hardware_uuid, issuer, revoked, certificate, comment from mw_tpm_endorsement where issuer like concat('%',:issuer,'%')") List<TpmEndorsement> findTpmEndorsementByIssuerContains(@Bind("issuer") String issuer); @SqlQuery("select id, hardware_uuid, issuer, revoked, certificate, comment from mw_tpm_endorsement where revoked=:revoked") List<TpmEndorsement> findTpmEndorsementByRevokedEqualTo(@Bind("revoked") boolean revoked); @SqlQuery("select id, hardware_uuid, issuer, revoked, certificate, comment from mw_tpm_endorsement where comment=:comment") TpmEndorsement findTpmEndorsementByCommentEqualTo(@Bind("comment") String comment); @SqlQuery("select id, hardware_uuid, issuer, revoked, certificate, comment from mw_tpm_endorsement where comment like concat('%',:comment,'%')") List<TpmEndorsement> findTpmEndorsementByCommentContains(@Bind("comment") String comment); @SqlUpdate("delete from mw_tpm_endorsement where id=:id") void deleteTpmEndorsementById(@Bind("id") UUID id); }