package org.djd.busntrain.train;
import android.content.ContentValues;
import android.database.Cursor;
import android.provider.BaseColumns;
import android.util.Log;
import com.google.gson.reflect.TypeToken;
import org.djd.busntrain.commons.ApplicationCommons;
import org.djd.busntrain.commons.XmlUtil;
import org.djd.busntrain.commons.XmlUtilException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import java.io.Serializable;
import java.lang.reflect.Type;
import java.util.ArrayList;
public class TrainStationsEntity implements Serializable {
public static final Type TYPE = new TypeToken<ArrayList<TrainStationsEntity>>() {
}.getType();
private static final String TAG = TrainStationsEntity.class.getSimpleName();
public long id;
public int stopId;
public String stopName;
public String color;
public String destination;
public int sequence;
public ContentValues getContentValues() {
ContentValues contentValues = getContentValuesForInsert();
contentValues.put(Columns._ID, id);
return contentValues;
}
public ContentValues getContentValuesForInsert() {
ContentValues contentValues = new ContentValues();
contentValues.put(Columns.STOP_ID, stopId);
contentValues.put(Columns.STOP_NAME, stopName);
contentValues.put(Columns.COLOR, color);
contentValues.put(Columns.DESTINATION, destination);
contentValues.put(Columns.SEQUENCE, sequence);
return contentValues;
}
@Override
public String toString() {
final StringBuilder sb = new StringBuilder();
sb.append("TrainStationsEntity");
sb.append("{id=").append(id);
sb.append(", stopId=").append(stopId);
sb.append(", stopName='").append(stopName).append('\'');
sb.append(", color='").append(color).append('\'');
sb.append(", destination='").append(destination).append('\'');
sb.append(", sequence=").append(sequence);
sb.append('}');
return sb.toString();
}
public static final class Columns implements BaseColumns {
public static final String STOP_ID = "STOP_ID";
public static final String STOP_NAME = "STOP_NAME";
public static final String COLOR = "COLOR";
public static final String DESTINATION = "DESTINATION";
public static final String SEQUENCE = "SEQUENCE";
public static final String[] FULL_PROJECTION =
{_ID, STOP_ID, STOP_NAME, COLOR, DESTINATION, SEQUENCE};
public static final String[] LIST_VIEW_PROJECTION =
{STOP_ID, STOP_NAME, COLOR, DESTINATION, SEQUENCE};
private Columns() {
}
}
public static final class Helper {
public static TrainStationsEntity toTrainStationsEntity(Cursor cursor, int position) {
cursor.moveToPosition(position);
TrainStationsEntity stationsEntity = new TrainStationsEntity();
stationsEntity.stopId = cursor.getInt(cursor.getColumnIndex(Columns.STOP_ID));
stationsEntity.stopName = cursor.getString(cursor.getColumnIndex(Columns.STOP_NAME));
stationsEntity.color = cursor.getString(cursor.getColumnIndex(Columns.COLOR));
stationsEntity.destination = cursor.getString(cursor.getColumnIndex(Columns.DESTINATION));
stationsEntity.sequence = cursor.getInt(cursor.getColumnIndex(Columns.SEQUENCE));
return stationsEntity;
}
public static ArrayList<TrainPredictionsModel> filterByColor(
ArrayList<TrainPredictionsModel> stationsModels, ApplicationCommons.ColorCode colorCode) {
ArrayList<TrainPredictionsModel> filteredList = new ArrayList<TrainPredictionsModel>();
for(TrainPredictionsModel predictionsModel : stationsModels) {
if(predictionsModel.rt.equals(colorCode.toString())) {
filteredList.add(predictionsModel);
}
}
return filteredList;
}
public static ArrayList<TrainPredictionsModel> orderByDestination(String destination,
ArrayList<TrainPredictionsModel> stationsModels) {
ArrayList<TrainPredictionsModel> orderedList = new ArrayList<TrainPredictionsModel>();
ArrayList<TrainPredictionsModel> remainderList = new ArrayList<TrainPredictionsModel>();
for(TrainPredictionsModel predictionsModel : stationsModels) {
Log.d(TAG, String.format("modeldest=%s, dest=%s", predictionsModel.destNm, destination));
if(predictionsModel.destNm.equals(destination)) {
orderedList.add(predictionsModel);
} else {
remainderList.add(predictionsModel);
}
}
orderedList.addAll(remainderList);
return orderedList;
}
/**
* Converts list of models into list of entities
*
* @param stationModels
* @return List of {@link TrainStationsEntity}
*/
@Deprecated
public static ArrayList<TrainStationsEntity> modelsToEntities(
ArrayList<StationModel> stationModels) {
ArrayList<TrainStationsEntity> stationsEntities =
new ArrayList<TrainStationsEntity>(stationModels.size());
for (StationModel stationModel : stationModels) {
TrainStationsEntity stationsEntity = new TrainStationsEntity();
stationsEntity.stopId = stationModel.getStopId();
stationsEntity.stopName = stationModel.getStopName();
stationsEntity.color = stationModel.getColor();
stationsEntity.destination = stationModel.getDestination();
stationsEntity.sequence = stationModel.getSequence();
stationsEntities.add(stationsEntity);
}
return stationsEntities;
}
@Deprecated
public static ArrayList<StationModel> entitiesToModels(
ArrayList<TrainStationsEntity> stationsEntities) {
ArrayList<StationModel> stationModels =
new ArrayList<StationModel>(stationsEntities.size());
for (TrainStationsEntity stationsEntity : stationsEntities) {
throw new UnsupportedOperationException("TODO");
}
return stationModels;
}
}
}