package cz.agents.dbtokmlexporter.darptestbed.kmlitembuilder;
import java.awt.Color;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import cz.agents.agentpolis.tools.geovisio.database.connection.DatabaseConnection;
import cz.agents.dbtokmlexporter.factory.geometry.PointGeometryFactory;
import cz.agents.dbtokmlexporter.factory.style.IconStyleFactory;
import cz.agents.dbtokmlexporter.kmlitem.builder.InterpolableTimeKmlItemBuilder;
/**
*
* @author Marek Cuchy
*
*/
public class ActivePassengersKmlItemBuilder extends InterpolableTimeKmlItemBuilder {
private static final String TABLE_NAME = "passengers";
// private static final String WHERE_CLAUSE = " WHERE from_time BETWEEN request_departure_min AND " +
// "request_arrival_max";
private static final String WHERE_CLAUSE = " WHERE from_time BETWEEN " +
"request_call_time AND request_arrival_max AND from_time <= successful_arrival_time" +
" AND request_status != 'REJECTED'";
// " AND request_status != 'CONFIRMED'";
public ActivePassengersKmlItemBuilder(DatabaseConnection connection, String schemaName, long interval,
String fileName, Color passengerColor, boolean interpolate) {
super(connection, schemaName, interval, fileName, TABLE_NAME, WHERE_CLAUSE,
new IconStyleFactory("data/passenger.png", 0.75), new PointGeometryFactory(), interpolate, true);
}
public ActivePassengersKmlItemBuilder(DatabaseConnection connection, String schemaName, long interval,
Color passengerColor, boolean interpolate) {
this(connection, schemaName, interval, "active_passengers.kmz", passengerColor, interpolate);
}
protected List<String> getDescriptionColumnNames() {
List<String> descriptionColumnNames = new ArrayList<>();
descriptionColumnNames.add("agentid");
descriptionColumnNames.add("request_status");
descriptionColumnNames.add("request_departure_min");
descriptionColumnNames.add("request_departure_max");
descriptionColumnNames.add("request_arrival_min");
descriptionColumnNames.add("request_arrival_max");
descriptionColumnNames.add("successful_arrival_time");
descriptionColumnNames.add("from_time");
descriptionColumnNames.add("request_call_time");
return descriptionColumnNames;
}
@Override
protected String getRecordId(ResultSet resultSet) throws SQLException {
return resultSet.getString("agentid");
}
}