|
@@ -93,6 +93,13 @@ public class SearchStudentCommand extends AbstractCommandHandler {
|
|
&& targetCol.matches("\\d+")
|
|
&& targetCol.matches("\\d+")
|
|
)
|
|
)
|
|
.sorted()
|
|
.sorted()
|
|
|
|
+ .filter(targetCol -> {
|
|
|
|
+ var col = tryParseUInt(targetCol) - 1;
|
|
|
|
+ if (col == -1)
|
|
|
|
+ return false; // filter it out
|
|
|
|
+ else
|
|
|
|
+ return col >= 0 && col < colNames.size();
|
|
|
|
+ })
|
|
.forEach(targetCol ->
|
|
.forEach(targetCol ->
|
|
selectedCols.put(colNames.get(
|
|
selectedCols.put(colNames.get(
|
|
tryParseUInt(targetCol)-1
|
|
tryParseUInt(targetCol)-1
|
|
@@ -139,14 +146,15 @@ public class SearchStudentCommand extends AbstractCommandHandler {
|
|
try {
|
|
try {
|
|
do {
|
|
do {
|
|
// read cols
|
|
// read cols
|
|
- String StudentID = rs.getString("StudentID");
|
|
|
|
- String HKID = rs.getString("HKID");
|
|
|
|
- String VISA = rs.getString("VISA");
|
|
|
|
- String Nationality = rs.getString("Nationality");
|
|
|
|
- String ChtName = rs.getString("ChtName");
|
|
|
|
- String EngName = rs.getString("EngName");
|
|
|
|
- String Address = rs.getString("Address");
|
|
|
|
- String MobileNum = rs.getString("MobileNum");
|
|
|
|
|
|
+ var StudentID = rs.getString("StudentID");
|
|
|
|
+ var HKID = rs.getString("HKID");
|
|
|
|
+ var VISA = rs.getString("VISA");
|
|
|
|
+ var Nationality = rs.getString("Nationality");
|
|
|
|
+ var ChtName = rs.getString("ChtName");
|
|
|
|
+ var EngName = rs.getString("EngName");
|
|
|
|
+ var Address = rs.getString("Address");
|
|
|
|
+ var MobileNum = rs.getString("MobileNum");
|
|
|
|
+ var Semester = rs.getInt("Semester");
|
|
|
|
|
|
AbstractStudent stu;
|
|
AbstractStudent stu;
|
|
if (VISA != null && !VISA.isBlank() && !VISA.isEmpty())
|
|
if (VISA != null && !VISA.isBlank() && !VISA.isEmpty())
|
|
@@ -163,7 +171,7 @@ public class SearchStudentCommand extends AbstractCommandHandler {
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
|
|
- stu.assign(StudentID, ChtName, EngName, Address, MobileNum, Nationality);
|
|
|
|
|
|
+ stu.assign(StudentID, ChtName, EngName, Address, MobileNum, Nationality, Semester);
|
|
students.put(StudentID, stu);
|
|
students.put(StudentID, stu);
|
|
} while (rs.next());
|
|
} while (rs.next());
|
|
}
|
|
}
|
|
@@ -174,27 +182,29 @@ public class SearchStudentCommand extends AbstractCommandHandler {
|
|
}
|
|
}
|
|
|
|
|
|
System.out.println(String.format(
|
|
System.out.println(String.format(
|
|
- "\nResults:\n+ %-13s | %-13s | %-13s | %-20s | %-30s | %-10s | %s",
|
|
|
|
|
|
+ "\nResults:\n+ %-13s | %-13s | %-13s | %-10s | %-20s | %-30s | %-10s | %s",
|
|
"StudentID",
|
|
"StudentID",
|
|
"HKID/VISA",
|
|
"HKID/VISA",
|
|
"Nationality",
|
|
"Nationality",
|
|
|
|
+ "Semester",
|
|
"ChtName",
|
|
"ChtName",
|
|
"EngName",
|
|
"EngName",
|
|
"Mobile",
|
|
"Mobile",
|
|
"Address"
|
|
"Address"
|
|
));
|
|
));
|
|
- // + id + hkid/visa + nationality +
|
|
|
|
- System.out.print("+---------------+---------------+---------------+");
|
|
|
|
|
|
+ // + id + hkid/visa + nationality + semester
|
|
|
|
+ System.out.print("+---------------+---------------+---------------+------------+");
|
|
// ChtName + EngName + mobile + addr
|
|
// ChtName + EngName + mobile + addr
|
|
System.out.println("----------------------+--------------------------------+------------+-->");
|
|
System.out.println("----------------------+--------------------------------+------------+-->");
|
|
|
|
|
|
students.forEach((k, v) -> System.out.println(
|
|
students.forEach((k, v) -> System.out.println(
|
|
- String.format("+ %-13s | %-13s | %-13s | %-"+(20-v.getChtName().length())+"s | %-30s | %-10s | %s",
|
|
|
|
|
|
+ String.format("+ %-13s | %-13s | %-13s | %-10s | %-"+(20-v.getChtName().length())+"s | %-30s | %-10s | %s",
|
|
k,
|
|
k,
|
|
(v instanceof LocalStudent)
|
|
(v instanceof LocalStudent)
|
|
? ((LocalStudent)v).getHKID()
|
|
? ((LocalStudent)v).getHKID()
|
|
: ((OverseaStudent)v).getVisa(),
|
|
: ((OverseaStudent)v).getVisa(),
|
|
v.getNationality(),
|
|
v.getNationality(),
|
|
|
|
+ v.getSemester(),
|
|
v.getChtName(),
|
|
v.getChtName(),
|
|
v.getEngName(),
|
|
v.getEngName(),
|
|
v.getMobileNumber(),
|
|
v.getMobileNumber(),
|
|
@@ -202,8 +212,8 @@ public class SearchStudentCommand extends AbstractCommandHandler {
|
|
)
|
|
)
|
|
));
|
|
));
|
|
|
|
|
|
- // + id + hkid/visa + nationality +
|
|
|
|
- System.out.print("+---------------+---------------+---------------+");
|
|
|
|
|
|
+ // + id + hkid/visa + nationality + semester
|
|
|
|
+ System.out.print("+---------------+---------------+---------------+------------+");
|
|
// ChtName + EngName + mobile + addr
|
|
// ChtName + EngName + mobile + addr
|
|
System.out.println("----------------------+--------------------------------+------------+-->");
|
|
System.out.println("----------------------+--------------------------------+------------+-->");
|
|
|
|
|