package ftp.broker;
import com.google.common.collect.ImmutableMap;
import com.nurkiewicz.jdbcrepository.JdbcRepository;
import com.nurkiewicz.jdbcrepository.RowUnmapper;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;
@Repository
public class PersistableServiceInstanceRepository extends JdbcRepository<PersistableServiceInstance, String> {
private static final String SERVICE_INSTANCE_TABLE_NAME = "SERVICE_INSTANCE";
private static final String SERVICE_INSTANCE_ID_NAME = "SERVICE_INSTANCE_ID";
private static final RowMapper<PersistableServiceInstance> ROW_MAPPER =
(rs, i) -> new PersistableServiceInstance(
rs.getString("SERVICE_DEFINITION_ID"),
rs.getString("PLAN_ID"),
rs.getString("ORGANIZATION_NAME"),
rs.getString("SPACE_GUID"),
rs.getString(SERVICE_INSTANCE_ID_NAME), true);
private static final RowUnmapper<PersistableServiceInstance> ROW_UNMAPPER =
si -> ImmutableMap.of(
SERVICE_INSTANCE_ID_NAME, si.getServiceInstanceId(),
"PLAN_ID", si.getPlanId(),
"SERVICE_DEFINITION_ID", si.getServiceDefinitionId(),
"ORGANIZATION_NAME", si.getOrganizationGuid(),
"SPACE_GUID", si.getSpaceGuid()
);
public PersistableServiceInstanceRepository() {
super(ROW_MAPPER, ROW_UNMAPPER, SERVICE_INSTANCE_TABLE_NAME, SERVICE_INSTANCE_ID_NAME);
}
@Override
protected <S extends PersistableServiceInstance> S postCreate(S entity, Number generatedId) {
entity.setPersisted(true);
return entity;
}
@Override
protected <S extends PersistableServiceInstance> S postUpdate(S entity) {
entity.setPersisted(true);
return entity;
}
}