Browse Source

Refactor code and adding SMART data

develop
LO Kam Tao Leo 3 years ago
parent
commit
32fdd0e4ae
  1. 10
      src/main/java/org/leolo/nrdatad/App.java
  2. 10
      src/main/java/org/leolo/nrdatad/cron/ReferenceDataJob.java
  3. 4
      src/main/java/org/leolo/nrdatad/db/BaseDao.java
  4. 37
      src/main/java/org/leolo/nrdatad/db/CorpusDao.java
  5. 3
      src/main/java/org/leolo/nrdatad/db/DatabaseManager.java
  6. 23
      src/main/java/org/leolo/nrdatad/db/SmartDao.java
  7. 54
      src/main/java/org/leolo/nrdatad/db/mariadb/CorpusDao.java
  8. 6
      src/main/java/org/leolo/nrdatad/db/mariadb/DatabaseManager.java
  9. 75
      src/main/java/org/leolo/nrdatad/db/mariadb/SmartDao.java
  10. 4
      src/main/java/org/leolo/nrdatad/model/Corpus.java
  11. 131
      src/main/java/org/leolo/nrdatad/model/Smart.java
  12. 20
      src/main/java/org/leolo/nrdatad/model/SmartEvent.java
  13. 53
      src/main/java/org/leolo/nrdatad/model/SmartStepType.java
  14. 4
      src/test/java/org/leolo/nrdatad/db/test/DatabaseManager.java

10
src/main/java/org/leolo/nrdatad/App.java

@ -4,10 +4,10 @@ package org.leolo.nrdatad;
import org.apache.commons.cli.*;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.leolo.nrdatad.db.CORPUSDao;
import org.leolo.nrdatad.db.CorpusDao;
import org.leolo.nrdatad.db.DatabaseManager;
import org.leolo.nrdatad.cron.ReferenceDataJob;
import org.leolo.nrdatad.model.CORPUS;
import org.leolo.nrdatad.model.Corpus;
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
@ -101,13 +101,13 @@ public class App {
private void testRefData() {
log.atInfo().log("Testing reference data");
ConfigurationManager conf = ConfigurationManager.getInstance();
CORPUSDao.Query query = new CORPUSDao.QueryBuilder()
CorpusDao.Query query = new CorpusDao.QueryBuilder()
.addCrsCode("ECR").addCrsCode("VIC")
.addDescription("croydon").build();
try {
Collection<CORPUS> list = conf.getDatabaseManager().getCORPUSDao().executeQuery(query);
Collection<Corpus> list = conf.getDatabaseManager().getCORPUSDao().executeQuery(query);
log.atDebug().log("{} entries found", list.size());
for(CORPUS corpus:list){
for(Corpus corpus:list){
log.atDebug().log("Found entry : {}", corpus);
}
} catch (SQLException e) {

10
src/main/java/org/leolo/nrdatad/cron/ReferenceDataJob.java

@ -6,8 +6,8 @@ import org.json.JSONArray;
import org.json.JSONObject;
import org.leolo.nrdatad.ConfigurationManager;
import org.leolo.nrdatad.Constants;
import org.leolo.nrdatad.db.CORPUSDao;
import org.leolo.nrdatad.model.CORPUS;
import org.leolo.nrdatad.db.CorpusDao;
import org.leolo.nrdatad.model.Corpus;
import org.leolo.nrdatad.util.HttpUtil;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
@ -46,10 +46,10 @@ public class ReferenceDataJob implements Job {
JSONObject rootObj = new JSONObject(json);
JSONArray rootArray = rootObj.getJSONArray("TIPLOCDATA");
log.atInfo().log("{} entries found", rootArray.length());
ArrayList<CORPUS> corpusList = new ArrayList<>();
ArrayList<Corpus> corpusList = new ArrayList<>();
for(int i=0;i<rootArray.length();i++){
JSONObject obj = rootArray.getJSONObject(i);
CORPUS corpus = new CORPUS();
Corpus corpus = new Corpus();
corpus.setStanoxCode(obj.optString("STANOX"));
corpus.setUicCode(obj.optString("UIC"));
corpus.setCrsCode(obj.optString("3ALPHA"));
@ -61,7 +61,7 @@ public class ReferenceDataJob implements Job {
}
log.atInfo().log("Going to replace the data");
try {
CORPUSDao cDao = conf.getDatabaseManager().getCORPUSDao();
CorpusDao cDao = conf.getDatabaseManager().getCORPUSDao();
cDao.replaceAll(corpusList);
} catch (SQLException e) {
log.atError().withThrowable(e).log("Unable to insert records");

4
src/main/java/org/leolo/nrdatad/db/BaseDao.java

@ -27,6 +27,10 @@ public abstract class BaseDao {
}
}
protected void setInt(PreparedStatement stmt, int pos, int val) throws SQLException{
stmt.setInt(pos, val);
}
protected String getQueryParams(int count){
if(count <= 0){
throw new IllegalArgumentException("count must be greater than 0");

37
src/main/java/org/leolo/nrdatad/db/CORPUSDao.java → src/main/java/org/leolo/nrdatad/db/CorpusDao.java

@ -1,14 +1,13 @@
package org.leolo.nrdatad.db;
import org.apache.commons.collections4.SetUtils;
import org.leolo.nrdatad.model.CORPUS;
import org.leolo.nrdatad.model.Corpus;
import java.sql.SQLException;
import java.util.*;
public abstract class CORPUSDao extends BaseDao{
public abstract class CorpusDao extends BaseDao{
public CORPUSDao(DatabaseManager manager) {
public CorpusDao(DatabaseManager manager) {
super(manager);
}
@ -109,20 +108,20 @@ public abstract class CORPUSDao extends BaseDao{
}
}
public abstract Collection<CORPUS> executeQuery(Query query) throws SQLException;
public abstract Collection<Corpus> executeQuery(Query query) throws SQLException;
public abstract void add(CORPUS corpus) throws SQLException;
public abstract void add(Corpus corpus) throws SQLException;
public void addAll(Collection<CORPUS> datas) throws SQLException {
for(CORPUS corpus: datas){
public void addAll(Collection<Corpus> datas) throws SQLException {
for(Corpus corpus: datas){
add(corpus);
}
}
public abstract void truncateTable() throws SQLException;
public abstract boolean hasNlcCode(String nlcCode) throws SQLException;
public abstract void update(CORPUS corpus) throws SQLException;
public void replace(CORPUS corpus) throws SQLException{
public abstract void update(Corpus corpus) throws SQLException;
public void replace(Corpus corpus) throws SQLException{
if(corpus.getNlcCode()==null || !hasNlcCode(corpus.getNlcCode())){
add(corpus);
}else{
@ -130,18 +129,18 @@ public abstract class CORPUSDao extends BaseDao{
}
}
public void replaceAll(Collection<CORPUS> datas) throws SQLException{
for(CORPUS corpus: datas){
public void replaceAll(Collection<Corpus> datas) throws SQLException{
for(Corpus corpus: datas){
replace(corpus);
}
}
public abstract Collection<CORPUS> searchCORPUSByStanoxCode(String stanoxCode) throws SQLException;
public abstract Collection<CORPUS> searchCORPUSByUicCode(String uicCode) throws SQLException;
public abstract Collection<CORPUS> searchCORPUSByCrsCode(String crsCode) throws SQLException;
public abstract Collection<CORPUS> searchCORPUSByTiplocCode(String tiplocCode) throws SQLException;
public abstract CORPUS searchCORPUSByNlcCode(String nlcCode) throws SQLException;
public abstract List<CORPUS> searchCORPUSByName(String name) throws SQLException;
public abstract Collection<Corpus> searchCORPUSByStanoxCode(String stanoxCode) throws SQLException;
public abstract Collection<Corpus> searchCORPUSByUicCode(String uicCode) throws SQLException;
public abstract Collection<Corpus> searchCORPUSByCrsCode(String crsCode) throws SQLException;
public abstract Collection<Corpus> searchCORPUSByTiplocCode(String tiplocCode) throws SQLException;
public abstract Corpus searchCORPUSByNlcCode(String nlcCode) throws SQLException;
public abstract List<Corpus> searchCORPUSByName(String name) throws SQLException;
public abstract CORPUS delete(String nlcCode) throws SQLException;
public abstract Corpus delete(String nlcCode) throws SQLException;
}

3
src/main/java/org/leolo/nrdatad/db/DatabaseManager.java

@ -2,7 +2,6 @@ package org.leolo.nrdatad.db;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.function.BiConsumer;
public interface DatabaseManager {
@ -14,5 +13,5 @@ public interface DatabaseManager {
public MetadataDao getMetadataDao();
public CORPUSDao getCORPUSDao();
public CorpusDao getCORPUSDao();
}

23
src/main/java/org/leolo/nrdatad/db/SmartDao.java

@ -0,0 +1,23 @@
package org.leolo.nrdatad.db;
import org.leolo.nrdatad.model.Smart;
import java.sql.SQLException;
import java.util.Collection;
public abstract class SmartDao extends BaseDao{
public SmartDao(DatabaseManager manager) {
super(manager);
}
public abstract void add(Smart smart) throws SQLException;
public void addAll(Collection<Smart> smarts) throws SQLException{
for(Smart smart: smarts){
add(smart);
}
}
}

54
src/main/java/org/leolo/nrdatad/db/mariadb/CORPUSDao.java → src/main/java/org/leolo/nrdatad/db/mariadb/CorpusDao.java

@ -6,22 +6,22 @@ import org.jetbrains.annotations.NotNull;
import org.leolo.nrdatad.db.DatabaseManager;
import org.leolo.nrdatad.db.ParameterStore;
import org.leolo.nrdatad.db.SearchMode;
import org.leolo.nrdatad.model.CORPUS;
import org.leolo.nrdatad.model.Corpus;
import java.sql.*;
import java.util.*;
public class CORPUSDao extends org.leolo.nrdatad.db.CORPUSDao {
public class CorpusDao extends org.leolo.nrdatad.db.CorpusDao {
Logger log = LogManager.getLogger();
public CORPUSDao(DatabaseManager manager) {
public CorpusDao(DatabaseManager manager) {
super(manager);
}
@Override
public Collection<CORPUS> executeQuery(org.leolo.nrdatad.db.CORPUSDao.Query query) throws SQLException {
Vector<CORPUS> corpuses = new Vector<>();
public Collection<Corpus> executeQuery(org.leolo.nrdatad.db.CorpusDao.Query query) throws SQLException {
Vector<Corpus> corpuses = new Vector<>();
ParameterStore params = new ParameterStore();
StringBuilder sql = new StringBuilder();
if(query.getSearchMode()== SearchMode.MATCH_ALL_GROUP || query.getSearchMode()==SearchMode.MATCH_ANY){
@ -95,7 +95,7 @@ public class CORPUSDao extends org.leolo.nrdatad.db.CORPUSDao {
}
@Override
public void add(@NotNull CORPUS corpus) throws SQLException {
public void add(@NotNull Corpus corpus) throws SQLException {
try(
Connection conn = getConnection();
PreparedStatement pstmt = conn.prepareStatement(
@ -115,14 +115,14 @@ public class CORPUSDao extends org.leolo.nrdatad.db.CORPUSDao {
}
@Override
public void addAll(@NotNull Collection<CORPUS> datas) throws SQLException {
public void addAll(@NotNull Collection<Corpus> datas) throws SQLException {
try(
Connection conn = getConnection();
PreparedStatement pstmt = conn.prepareStatement(
"INSERT INTO corpus (stanox, uic_code, crs_code, tiploc_code, nlc_code, `desc`, short_desc) " +
"VALUES (?,?,?,?,?,?,?)")
){
for(CORPUS corpus:datas) {
for(Corpus corpus:datas) {
setString(pstmt, 1, corpus.getStanoxCode());
setString(pstmt, 2, corpus.getUicCode());
setString(pstmt, 3, corpus.getCrsCode());
@ -139,7 +139,7 @@ public class CORPUSDao extends org.leolo.nrdatad.db.CORPUSDao {
@Override
public void replaceAll(@NotNull Collection<CORPUS> datas) throws SQLException {
public void replaceAll(@NotNull Collection<Corpus> datas) throws SQLException {
int totalCount = 0, insertCount = 0, updateCount = 0;
HashSet<String> pendingInsert = new HashSet<>();
try(
@ -153,9 +153,9 @@ public class CORPUSDao extends org.leolo.nrdatad.db.CORPUSDao {
"WHERE nlc_code = ?"
)
){
for(CORPUS corpus:datas){
for(Corpus corpus:datas){
totalCount++;
CORPUS existing = searchCORPUSByNlcCode(corpus.getNlcCode());
Corpus existing = searchCORPUSByNlcCode(corpus.getNlcCode());
PreparedStatement stmt = null;
if(corpus.equals(existing)){
continue;
@ -220,7 +220,7 @@ public class CORPUSDao extends org.leolo.nrdatad.db.CORPUSDao {
}
@Override
public void update(CORPUS corpus) throws SQLException {
public void update(Corpus corpus) throws SQLException {
try(
Connection conn = getConnection();
PreparedStatement pstmt = conn.prepareStatement(
@ -241,8 +241,8 @@ public class CORPUSDao extends org.leolo.nrdatad.db.CORPUSDao {
}
@Override
public Collection<CORPUS> searchCORPUSByStanoxCode(String stanoxCode) throws SQLException {
Collection<CORPUS> corpuses = new Vector<>();
public Collection<Corpus> searchCORPUSByStanoxCode(String stanoxCode) throws SQLException {
Collection<Corpus> corpuses = new Vector<>();
try(
Connection conn = getConnection();
PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM corpus WHERE stanox = ?")
@ -258,8 +258,8 @@ public class CORPUSDao extends org.leolo.nrdatad.db.CORPUSDao {
}
@Override
public Collection<CORPUS> searchCORPUSByUicCode(String uicCode) throws SQLException {
Collection<CORPUS> corpuses = new Vector<>();
public Collection<Corpus> searchCORPUSByUicCode(String uicCode) throws SQLException {
Collection<Corpus> corpuses = new Vector<>();
try(
Connection conn = getConnection();
PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM corpus WHERE uic_code = ?")
@ -275,8 +275,8 @@ public class CORPUSDao extends org.leolo.nrdatad.db.CORPUSDao {
}
@Override
public Collection<CORPUS> searchCORPUSByCrsCode(String crsCode) throws SQLException {
Collection<CORPUS> corpuses = new Vector<>();
public Collection<Corpus> searchCORPUSByCrsCode(String crsCode) throws SQLException {
Collection<Corpus> corpuses = new Vector<>();
try(
Connection conn = getConnection();
PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM corpus WHERE crs_code = ?")
@ -292,8 +292,8 @@ public class CORPUSDao extends org.leolo.nrdatad.db.CORPUSDao {
}
@Override
public Collection<CORPUS> searchCORPUSByTiplocCode(String tiplocCode) throws SQLException {
Collection<CORPUS> corpuses = new Vector<>();
public Collection<Corpus> searchCORPUSByTiplocCode(String tiplocCode) throws SQLException {
Collection<Corpus> corpuses = new Vector<>();
try(
Connection conn = getConnection();
PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM corpus WHERE tiploc_code = ?")
@ -309,7 +309,7 @@ public class CORPUSDao extends org.leolo.nrdatad.db.CORPUSDao {
}
@Override
public CORPUS searchCORPUSByNlcCode(String nlcCode) throws SQLException {
public Corpus searchCORPUSByNlcCode(String nlcCode) throws SQLException {
try(
Connection conn = getConnection();
PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM corpus WHERE nlc_code = ?")
@ -325,9 +325,9 @@ public class CORPUSDao extends org.leolo.nrdatad.db.CORPUSDao {
}
@Override
public List<CORPUS> searchCORPUSByName(String name) throws SQLException {
public List<Corpus> searchCORPUSByName(String name) throws SQLException {
List<CORPUS> corpuses = new Vector<>();
List<Corpus> corpuses = new Vector<>();
try(
Connection conn = getConnection();
PreparedStatement pstmt = conn.prepareStatement(
@ -350,8 +350,8 @@ public class CORPUSDao extends org.leolo.nrdatad.db.CORPUSDao {
return corpuses;
}
private CORPUS parseCORPUS(ResultSet rs) throws SQLException{
CORPUS corpus = new CORPUS();
private Corpus parseCORPUS(ResultSet rs) throws SQLException{
Corpus corpus = new Corpus();
corpus.setStanoxCode(rs.getString("stanox"));
corpus.setUicCode(rs.getString("uic_code"));
corpus.setCrsCode(rs.getString("crs_code"));
@ -363,8 +363,8 @@ public class CORPUSDao extends org.leolo.nrdatad.db.CORPUSDao {
}
@Override
public CORPUS delete(String nlcCode) throws SQLException {
CORPUS deletedEntry = searchCORPUSByNlcCode(nlcCode);
public Corpus delete(String nlcCode) throws SQLException {
Corpus deletedEntry = searchCORPUSByNlcCode(nlcCode);
if(deletedEntry!=null){
try(
Connection conn = getConnection();

6
src/main/java/org/leolo/nrdatad/db/mariadb/DatabaseManager.java

@ -3,7 +3,7 @@ package org.leolo.nrdatad.db.mariadb;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.leolo.nrdatad.ConfigurationManager;
import org.leolo.nrdatad.db.CORPUSDao;
import org.leolo.nrdatad.db.CorpusDao;
import org.leolo.nrdatad.db.MetadataDao;
import org.mariadb.jdbc.MariaDbPoolDataSource;
@ -68,7 +68,7 @@ public class DatabaseManager implements org.leolo.nrdatad.db.DatabaseManager{
}
@Override
public CORPUSDao getCORPUSDao() {
return new org.leolo.nrdatad.db.mariadb.CORPUSDao(this);
public CorpusDao getCORPUSDao() {
return new org.leolo.nrdatad.db.mariadb.CorpusDao(this);
}
}

75
src/main/java/org/leolo/nrdatad/db/mariadb/SmartDao.java

@ -0,0 +1,75 @@
package org.leolo.nrdatad.db.mariadb;
import org.leolo.nrdatad.db.DatabaseManager;
import org.leolo.nrdatad.model.Smart;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Collection;
public class SmartDao extends org.leolo.nrdatad.db.SmartDao {
public SmartDao(DatabaseManager manager) {
super(manager);
}
@Override
public void add(Smart smart) throws SQLException {
try(
Connection conn = getConnection();
PreparedStatement pstmt = conn.prepareStatement(
"INSERT INTO smart (" +
"td, from_berth, to_berth, from_line, to_line, breth_offset, platform, event, route, " +
"stanox, station_name, step_type, comment" +
") VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)")
){
setString(pstmt, 1, smart.getTd());
setString(pstmt, 2, smart.getFromBerth());
setString(pstmt, 3, smart.getToBerth());
setString(pstmt, 4, smart.getFromLine());
setString(pstmt, 5, smart.getToLine());
setInt (pstmt, 6, smart.getBerthOffset());
setString(pstmt, 7, smart.getPlatform());
setString(pstmt, 8, smart.getEvent().getCode());
setString(pstmt, 9, smart.getRoute());
setString(pstmt, 10, smart.getStanox());
setString(pstmt, 11, smart.getStationName());
setString(pstmt, 12, smart.getStepType().getCode());
setString(pstmt, 13, smart.getComment());
pstmt.executeUpdate();
conn.commit();
}
}
@Override
public void addAll(Collection<Smart> smarts) throws SQLException {
try(
Connection conn = getConnection();
PreparedStatement pstmt = conn.prepareStatement(
"INSERT INTO smart (" +
"td, from_berth, to_berth, from_line, to_line, breth_offset, platform, event, route, " +
"stanox, station_name, step_type, comment" +
") VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)")
){
for(Smart smart:smarts){
setString(pstmt, 1, smart.getTd());
setString(pstmt, 2, smart.getFromBerth());
setString(pstmt, 3, smart.getToBerth());
setString(pstmt, 4, smart.getFromLine());
setString(pstmt, 5, smart.getToLine());
setInt (pstmt, 6, smart.getBerthOffset());
setString(pstmt, 7, smart.getPlatform());
setString(pstmt, 8, smart.getEvent().getCode());
setString(pstmt, 9, smart.getRoute());
setString(pstmt, 10, smart.getStanox());
setString(pstmt, 11, smart.getStationName());
setString(pstmt, 12, smart.getStepType().getCode());
setString(pstmt, 13, smart.getComment());
pstmt.addBatch();
}
pstmt.executeBatch();
conn.commit();
}
}
}

4
src/main/java/org/leolo/nrdatad/model/CORPUS.java → src/main/java/org/leolo/nrdatad/model/Corpus.java

@ -2,7 +2,7 @@ package org.leolo.nrdatad.model;
import java.util.Objects;
public class CORPUS {
public class Corpus {
private String stanoxCode;
private String uicCode;
@ -73,7 +73,7 @@ public class CORPUS {
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
CORPUS corpus = (CORPUS) o;
Corpus corpus = (Corpus) o;
return Objects.equals(stanoxCode, corpus.stanoxCode) && Objects.equals(uicCode, corpus.uicCode) && Objects.equals(crsCode, corpus.crsCode) && Objects.equals(tiplocCode, corpus.tiplocCode) && Objects.equals(nlcCode, corpus.nlcCode) && Objects.equals(longDescription, corpus.longDescription) && Objects.equals(shortDescription, corpus.shortDescription);
}

131
src/main/java/org/leolo/nrdatad/model/Smart.java

@ -0,0 +1,131 @@
package org.leolo.nrdatad.model;
public class Smart {
private int smartId;
private String td;
private String fromBerth;
private String toBerth;
private String fromLine;
private String toLine;
private int berthOffset;
private String platform;
private SmartEvent event;
private String route;
private String stanox;
private String stationName;
private SmartStepType stepType;
private String comment;
public int getSmartId() {
return smartId;
}
public void setSmartId(int smartId) {
this.smartId = smartId;
}
public String getTd() {
return td;
}
public void setTd(String td) {
this.td = td;
}
public String getFromBerth() {
return fromBerth;
}
public void setFromBerth(String fromBerth) {
this.fromBerth = fromBerth;
}
public String getToBerth() {
return toBerth;
}
public void setToBerth(String toBerth) {
this.toBerth = toBerth;
}
public String getFromLine() {
return fromLine;
}
public void setFromLine(String fromLine) {
this.fromLine = fromLine;
}
public String getToLine() {
return toLine;
}
public void setToLine(String toLine) {
this.toLine = toLine;
}
public int getBerthOffset() {
return berthOffset;
}
public void setBerthOffset(int berthOffset) {
this.berthOffset = berthOffset;
}
public String getPlatform() {
return platform;
}
public void setPlatform(String platform) {
this.platform = platform;
}
public SmartEvent getEvent() {
return event;
}
public void setEvent(SmartEvent event) {
this.event = event;
}
public String getRoute() {
return route;
}
public void setRoute(String route) {
this.route = route;
}
public String getStanox() {
return stanox;
}
public void setStanox(String stanox) {
this.stanox = stanox;
}
public String getStationName() {
return stationName;
}
public void setStationName(String stationName) {
this.stationName = stationName;
}
public SmartStepType getStepType() {
return stepType;
}
public void setStepType(SmartStepType stepType) {
this.stepType = stepType;
}
public String getComment() {
return comment;
}
public void setComment(String comment) {
this.comment = comment;
}
}

20
src/main/java/org/leolo/nrdatad/model/SmartEvent.java

@ -0,0 +1,20 @@
package org.leolo.nrdatad.model;
public enum SmartEvent {
ARRIVE_UP ("A"),
DEPART_UP ("B"),
ARRIVE_DOWN("C"),
DEPART_DOWN("D");
private String code;
private SmartEvent(String code){
this.code = code;
}
public String getCode() {
return code;
}
}

53
src/main/java/org/leolo/nrdatad/model/SmartStepType.java

@ -0,0 +1,53 @@
package org.leolo.nrdatad.model;
public enum SmartStepType {
/**
* This is a move between directly adjacent berths, and is the preferred type of movement. The time reported to
* TRUST is the time that the train enters the 'to' berth.
*/
BETWEEN("B"),
/**
* This is used to record a time for a train going in either direction (up or down) from the specified berth to any
* other berth. The time reported to TRUST is the time that the train leaves the 'from' berth.
*/
FROM("F"),
/**
* This is the opposite of the 'F' step type. It is used to record a time for a train from any berth to the
* specified berth. The time reported to TRUST is the time that the train enters the 'to' berth.
*/
TO("T"),
/**
* This is used to specify the route a train is taking, usually when departing a station or junction.
*
* For example, if a 'D' move is specified as 0101 to 0407, and a train moves between berths 0101, 0203, 0305 and
* 0407, the move will be reported for the time the train left the first berth.
*/
INTERMEDIATE_FIRST("D"),
/**
* This is used to report on a movement where the only indication is a cancel message. For example, when a train
* leaves Network Rail infrastructure and moves in to a siding or area not covered by a train describer, the only
* message that will be received is a Clearout (CB) message.
*/
CLEAROUT("C"),
/**
* This is the opposite of the 'C' step type. It is used to report on a movement where the only indication is
* an interpose message. For example, when a train arrives on Network Rail infrastructure from a siding. The time
* reported to TRUST is the time that the interpose happened.
*/
INTERPOSE("I"),
/**
* This is similar to the 'D' move, but usually used for arrivals. The time reported to TRUST is the time the last
* berth step was made.
*/
INTERMEDIATE("E");
private String code;
private SmartStepType(String code){
this.code = code;
}
public String getCode() {
return code;
}
}

4
src/test/java/org/leolo/nrdatad/db/test/DatabaseManager.java

@ -1,6 +1,6 @@
package org.leolo.nrdatad.db.test;
import org.leolo.nrdatad.db.CORPUSDao;
import org.leolo.nrdatad.db.CorpusDao;
import org.leolo.nrdatad.db.MetadataDao;
import java.sql.Connection;
@ -28,7 +28,7 @@ public class DatabaseManager implements org.leolo.nrdatad.db.DatabaseManager {
}
@Override
public CORPUSDao getCORPUSDao() {
public CorpusDao getCORPUSDao() {
return null;
}
}

Loading…
Cancel
Save