package ftp.broker;
import com.nurkiewicz.jdbcrepository.JdbcRepository;
import com.nurkiewicz.jdbcrepository.RowUnmapper;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;
import java.util.HashMap;
import java.util.Map;
@Repository
public class PersistableServiceInstanceBindingRepository
extends JdbcRepository<PersistableServiceInstanceBinding, String> {
private static final String SERVICE_INSTANCE_BINDING_ID_NAME = "SERVICE_INSTANCE_BINDING_ID";
private static final String SERVICE_INSTANCE_TABLE_NAME = "SERVICE_INSTANCE_BINDING";
private static final RowUnmapper<PersistableServiceInstanceBinding> ROW_UNMAPPER =
sib -> {
Map<String, Object> map = new HashMap<>();
map.put(SERVICE_INSTANCE_BINDING_ID_NAME, sib.getId());
map.put("SERVICE_INSTANCE_ID", sib.getServiceInstanceId());
map.put("URI", String.class.cast(sib.getCredentials().getOrDefault("uri", null)));
map.put("SYSLOG_DRAIN_URL", sib.getSyslogDrainUrl());
map.put("APP_GUID", sib.getAppGuid());
return map;
};
private static final RowMapper<PersistableServiceInstanceBinding> ROW_MAPPER =
(rs, i) -> new PersistableServiceInstanceBinding(
rs.getString(SERVICE_INSTANCE_BINDING_ID_NAME),
rs.getString("SERVICE_INSTANCE_ID"),
rs.getString("URI"),
rs.getString("SYSLOG_DRAIN_URL"),
rs.getString("APP_GUID"));
public PersistableServiceInstanceBindingRepository() {
super(ROW_MAPPER, ROW_UNMAPPER, SERVICE_INSTANCE_TABLE_NAME, SERVICE_INSTANCE_BINDING_ID_NAME);
}
@Override
protected <S extends PersistableServiceInstanceBinding> S postCreate(S entity, Number generatedId) {
entity.setPersisted(true);
return entity;
}
@Override
protected <S extends PersistableServiceInstanceBinding> S postUpdate(S entity) {
entity.setPersisted(true);
return entity;
}
}