package com.intel.mtwilson.tls.policy.jdbi;
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.
*/
/**
*
* @author jbuhacoff
*/
@UseStringTemplate3StatementLocator
@RegisterArgumentFactory({UUIDArgument.class})
@RegisterMapper({TlsPolicyResultMapper.class,})
public interface TlsPolicyDAO extends Closeable {
@SqlUpdate("insert into mw_tls_policy (id, name, private, content_type, content, comment) values (:id, :name, :private, :contentType, :content, :comment)")
void insertTlsPolicy(@BindBean TlsPolicyRecord tlsPolicyRecord);
// void insertTlsPolicy(@Bind("id") String id, @Bind("name") String name, @Bind("impl") String impl, @Bind("content_type") String contentType, @Bind("content") byte[] content, @Bind("comment") String comment);
@SqlUpdate("update mw_tls_policy set name=:name, private=:private, content_type=:contentType, content=:content, comment=:comment where id=:id")
void updateTlsPolicy(@BindBean TlsPolicyRecord tlsPolicyRecord);
// void updateTlsPolicy(@Bind("id") String id, @Bind("name") String name, @Bind("impl") String impl, @Bind("content_type") String contentType, @Bind("content") byte[] content, @Bind("comment") String comment);
@SqlQuery("select id, name, private, content_type, content, comment from mw_tls_policy")
List<TlsPolicyRecord> findAllTlsPolicy();
@SqlQuery("select id, name, private, content_type, content, comment from mw_tls_policy where id=:id")
TlsPolicyRecord findTlsPolicyById(@Bind("id") UUID id);
@SqlQuery("select id, name, private, content_type, content, comment from mw_tls_policy where id in ( <ids> )")
List<TlsPolicyRecord> findTlsPolicyByIds(@BindIn("ids") Set<String> ids);
@SqlQuery("select id, name, private, content_type, content, comment from mw_tls_policy where private=true and name=:host_id")
TlsPolicyRecord findPrivateTlsPolicyByHostId(@Bind("host_id") String host_id);
@SqlQuery("select id, name, private, content_type, content, comment from mw_tls_policy where name=:name")
TlsPolicyRecord findTlsPolicyByNameEqualTo(@Bind("name") String name);
@SqlQuery("select id, name, private, content_type, content, comment from mw_tls_policy where name like concat('%',:name,'%')")
List<TlsPolicyRecord> findTlsPolicyByNameContains(@Bind("name") String name);
@SqlQuery("select id, name, private, content_type, content, comment from mw_tls_policy where private=:private")
List<TlsPolicyRecord> findTlsPolicyByPrivateEqualTo(@Bind("private") boolean privateScope);
@SqlQuery("select id, name, private, content_type, content, comment from mw_tls_policy where comment=:comment")
TlsPolicyRecord findTlsPolicyByCommentEqualTo(@Bind("comment") String comment);
@SqlQuery("select id, name, private, content_type, content, comment from mw_tls_policy where comment like concat('%',:comment,'%')")
List<TlsPolicyRecord> findTlsPolicyByCommentContains(@Bind("comment") String comment);
@SqlUpdate("delete from mw_tls_policy where id=:id")
void deleteTlsPolicyById(@Bind("id") UUID id);
@SqlUpdate("delete from mw_tls_policy where private=true and name=:host_id")
void deletePrivateTlsPolicyByHostId(@Bind("host_id") String host_id);
}