Package jmri.jmrit.timetable
Class TimeTableCsvImport
- java.lang.Object
-
- jmri.jmrit.timetable.TimeTableCsvImport
-
public class TimeTableCsvImport extends java.lang.Object
CSV Record Types. The first field is the record type keyword (not I18N). Most fields are optional."Layout", "layout name", "scale", fastClock, throttles, "metric" Defaults: "New Layout", "HO", 4, 0, "No" Occurs: Must be first record, occurs once "TrainType", "type name", color number Defaults: "New Type", #000000 Occurs: Follows Layout record, occurs 0 to n times. If none, a default train type is created which will be used for all trains. Notes: #000000 is black. If the type name is UseLayoutTypes, the train types for the current layout will be used. "Segment", "segment name" Default: "New Segment" Occurs: Follows last TrainType, if any. Occurs 1 to n times. "Station", "station name", distance, doubleTrack, sidings, staging Defaults: "New Station", 1.0, No, 0, 0 Occurs: Follows parent segment, occurs 1 to n times. Note: If the station name is UseSegmentStations, the stations for the current segment will be used. "Schedule", "schedule name", "effective date", startHour, duration Defaults: "New Schedule", "Today", 0, 24 Occurs: Follows last station, occurs 1 to n times. "Train", "train name", "train description", type, defaultSpeed, starttime, throttle, notes Defaults: "NT", "New Train", 0, 1, 0, 0, "" Occurs: Follows parent schedule, occurs 1 to n times. Note1: The type is the relative number of the train type listed above starting with 1 for the first train type. Note2: The start time is an integer between 0 and 1439, subject to the schedule start time and duration. "Stop", station, duration, nextSpeed, stagingTrack, notes Defaults: 0, 0, 0, 0, "" Required: station number. Occurs: Follows parent train in the proper sequence. Occurs 1 to n times. Notes: The station is the relative number of the station listed above starting with 1 for the first station. If more that one segment is used, the station number is cumulative. Except for Stops, each record can have one of three actions: 1) If no name is supplied, a default object will be created. 2) If the name matches an existing name, the existing object will be used. 3) A new object will be created with the supplied name. The remaining fields, if any, will replace the default values. Minimal file using defaults except for station names and distances: "Layout" "Segment" "Station", "Station 1", 0.0 "Station", "Station 2", 25.0 "Schedule" "Train" "Stop", 1 "Stop", 2The import applies the changes to the data in memory. At the end of the import a dialog is displayed with the option to save the changes to the timetable data file.- Since:
- 4.15.3
-
-
Field Summary
Fields Modifier and Type Field Description (package private) java.io.BufferedReaderbufferedReader(package private) CSVParsercsvFile(package private) booleanerrorOccurred(package private) java.io.FileReaderfileReader(package private) java.util.List<java.lang.String>importFeedback(package private) intlayoutId(package private) intrecordNumber(package private) intscheduleId(package private) intsegmentId(package private) java.util.List<java.lang.Integer>stations(package private) TimeTableDataManagertdm(package private) inttrainId(package private) java.util.List<java.lang.Integer>trainTypes
-
Constructor Summary
Constructors Constructor Description TimeTableCsvImport()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) doubleconvertToDouble(java.lang.String number)(package private) intconvertToInteger(java.lang.String number)(package private) voiddoLayout(java.lang.String[] values)(package private) voiddoSchedule(java.lang.String[] values)(package private) voiddoSegment(java.lang.String[] values)(package private) voiddoStation(java.lang.String[] values)(package private) voiddoStop(java.lang.String[] values)(package private) voiddoTrain(java.lang.String[] values)(package private) voiddoTrainType(java.lang.String[] values)java.util.List<java.lang.String>importCsv(java.io.File file)
-
-
-
Field Detail
-
errorOccurred
boolean errorOccurred
-
importFeedback
java.util.List<java.lang.String> importFeedback
-
fileReader
java.io.FileReader fileReader
-
bufferedReader
java.io.BufferedReader bufferedReader
-
recordNumber
int recordNumber
-
layoutId
int layoutId
-
segmentId
int segmentId
-
scheduleId
int scheduleId
-
trainId
int trainId
-
trainTypes
java.util.List<java.lang.Integer> trainTypes
-
stations
java.util.List<java.lang.Integer> stations
-
-
Constructor Detail
-
TimeTableCsvImport
public TimeTableCsvImport()
-
-
Method Detail
-
importCsv
public java.util.List<java.lang.String> importCsv(java.io.File file) throws java.io.IOException
- Throws:
java.io.IOException
-
doLayout
void doLayout(java.lang.String[] values)
-
doTrainType
void doTrainType(java.lang.String[] values)
-
doSegment
void doSegment(java.lang.String[] values)
-
doStation
void doStation(java.lang.String[] values)
-
doSchedule
void doSchedule(java.lang.String[] values)
-
doTrain
void doTrain(java.lang.String[] values)
-
doStop
void doStop(java.lang.String[] values)
-
convertToInteger
int convertToInteger(java.lang.String number)
-
convertToDouble
double convertToDouble(java.lang.String number)
-
-