From 281261ed45353eb485255a53bda4321e1f9a7df0 Mon Sep 17 00:00:00 2001 From: lanhsunam987 Date: Sun, 14 Oct 2018 00:24:34 -0500 Subject: [PATCH 1/3] test update rule --- src/turncontrol/TurnControl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/turncontrol/TurnControl.java b/src/turncontrol/TurnControl.java index 0774275..41c2fa0 100644 --- a/src/turncontrol/TurnControl.java +++ b/src/turncontrol/TurnControl.java @@ -9,6 +9,7 @@ * * @author nhuytan * add collaborator lanhsunam987 + * Test update rule */ public class TurnControl { From 34dce3b3327f3e5ff62dbd0fe29347b6b4591e9a Mon Sep 17 00:00:00 2001 From: nhuytan <42280131+nhuytan@users.noreply.github.com> Date: Tue, 16 Oct 2018 01:19:37 -0500 Subject: [PATCH 2/3] Update 16/7 new branch --- build/classes/turncontrol/Employee.class | Bin 2588 -> 2788 bytes build/classes/turncontrol/TurnControl.class | Bin 13917 -> 15189 bytes nbproject/private/private.xml | 2 + src/turncontrol/BubbleSort.java | 57 +++++++-- src/turncontrol/Employee.java | 9 ++ src/turncontrol/TurnControl.java | 134 ++++++++++++++------ src/turncontrol/ngoiloinhapthe.html | 24 ---- 7 files changed, 153 insertions(+), 73 deletions(-) delete mode 100644 src/turncontrol/ngoiloinhapthe.html diff --git a/build/classes/turncontrol/Employee.class b/build/classes/turncontrol/Employee.class index 2dd83272a1e8b9e652d2c8bbf53f4e08ca91dc91..ca56ac2ee156153c537e0cccfaa6a1515c4fe07a 100644 GIT binary patch literal 2788 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 Hal`)rU}unW delta 4924 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 diff --git a/nbproject/private/private.xml b/nbproject/private/private.xml index 691e469..8cae265 100644 --- a/nbproject/private/private.xml +++ b/nbproject/private/private.xml @@ -4,7 +4,9 @@ file:/C:/Users/nhuyt/OneDrive/Documents/NetBeansProjects/TurnControl/src/turncontrol/Employee.java + file:/C:/Users/nhuyt/OneDrive/Documents/NetBeansProjects/TurnControl/src/turncontrol/test1.java file:/C:/Users/nhuyt/OneDrive/Documents/NetBeansProjects/TurnControl/src/turncontrol/TurnControl.java + file:/C:/Users/nhuyt/OneDrive/Documents/NetBeansProjects/TurnControl/src/turncontrol/BubbleSort.java diff --git a/src/turncontrol/BubbleSort.java b/src/turncontrol/BubbleSort.java index 1633627..6cab77b 100644 --- a/src/turncontrol/BubbleSort.java +++ b/src/turncontrol/BubbleSort.java @@ -17,44 +17,75 @@ public class BubbleSort { public void bubbleSortTime(ArrayList employee) { int n = employee.size(); + System.out.println("BEFORE bubbleSortTime:"); + printEmployeeName(employee); for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - i - 1; j++) { - if (employee.get(i).getCheckInTime().isAfter(employee.get(i + 1).getCheckInTime())) { - Collections.swap(employee, i, i + 1); + if (employee.get(j).getCheckInTime().isAfter(employee.get(j + 1).getCheckInTime())) { + System.out.print("<>"); + Collections.swap(employee, j, j + 1); } } + System.out.println("bubbleSortTime-SORT ROUND " + (i + 1)); } + System.out.println("AFTER bubbleSortTime:"); + printEmployeeName(employee); } public void bubbleSortTotal(ArrayList employee) { int n = employee.size(); + System.out.println("BEFORE bubbleSortTotal:"); + printEmployeeName(employee); for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - i - 1; j++) { - if (employee.get(i).getTotal() > employee.get(i + 1).getTotal()) { - Collections.swap(employee, i, i + 1); + if (employee.get(j).getTotal() > employee.get(j + 1).getTotal()) { + System.out.print("<>"); + Collections.swap(employee, j, j + 1); + } else if (employee.get(j).getTotal() == employee.get(j + 1).getTotal()) { + if (employee.get(j).getCheckInTime().isAfter(employee.get(j + 1).getCheckInTime())) { + System.out.print("<>"); + Collections.swap(employee, j, j + 1); + } } } + System.out.println("bubbleSortTotal-SORT ROUND " + (i + 1)); } + System.out.println("AFTER bubbleSortTotal:"); + printEmployeeName(employee); } public void bubbleSortTotalTurn(ArrayList employee) { int n = employee.size(); + System.out.println("BEFORE bubbleSortTotalTurn:"); + printEmployeeName(employee); for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - i - 1; j++) { - if (employee.get(i).getTotalTurn()> employee.get(i + 1).getTotalTurn()) { - Collections.swap(employee, i, i + 1); + if (employee.get(j).getTotalTurn() > employee.get(j + 1).getTotalTurn()) { + System.out.print("<>"); + Collections.swap(employee, j, j + 1); + } else if (employee.get(j).getTotalTurn() == employee.get(j + 1).getTotalTurn()) { + if (employee.get(j).getCheckInTime().isAfter(employee.get(j + 1).getCheckInTime())) { + Collections.swap(employee, j, j + 1); + } } } + System.out.println("bubbleSortTotalTurn-SORT ROUND " + (i + 1)); + printEmployeeList(employee); } + System.out.println("AFTER bubbleSortTotalTurn:"); + printEmployeeName(employee); } - /* Prints the array */ - public void printArray(int arr[]) { - int n = arr.length; - for (int i = 0; i < n; ++i) { - System.out.print(arr[i] + " "); + public static void printEmployeeList(ArrayList e) { + for (int i = 0; i < e.size(); i++) { + System.out.println("Employee " + e.get(i).getEmpName() + " ----Total Turn " + e.get(i).getTotalTurn()); + } + } + + public static void printEmployeeName(ArrayList e) { + for (int i = 0; i < e.size(); i++) { + System.out.println(e.get(i).getEmpName() + "\t" + e.get(i).getTotalTurn() + "\t" + + e.get(i).getCheckInTime().toString()); } - System.out.println(); } } -/* This code is contributed by Rajat Mishra */ diff --git a/src/turncontrol/Employee.java b/src/turncontrol/Employee.java index 715c821..d7bcaa7 100644 --- a/src/turncontrol/Employee.java +++ b/src/turncontrol/Employee.java @@ -23,11 +23,20 @@ public class Employee { int position; boolean active; boolean isWorking; + int indexGroup; Employee() { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } + public int getIndexGroup() { + return indexGroup; + } + + public void setIndexGroup(int indexGroup) { + this.indexGroup = indexGroup; + } + public boolean isIsWorking() { return isWorking; } diff --git a/src/turncontrol/TurnControl.java b/src/turncontrol/TurnControl.java index 0774275..41d0d46 100644 --- a/src/turncontrol/TurnControl.java +++ b/src/turncontrol/TurnControl.java @@ -7,8 +7,7 @@ /** * - * @author nhuytan - * add collaborator lanhsunam987 + * @author nhuytan add collaborator lanhsunam987 */ public class TurnControl { @@ -376,12 +375,19 @@ public static void print(ArrayList employee) { DateTimeFormatter dtf = DateTimeFormatter.ofPattern("HH:mm:ss"); System.out.println("\nEmployee Table Details:"); TableBuilder tb = new TableBuilder(); - tb.addRow("EmployeeID", "EmployeeName", "CheckInTime", "Total", "Total_Turn", "Is_Working", "Status", "Position", "Turn_List"); + tb.addRow("EmployeeID", "EmployeeName", "CheckInTime", "Total", "Total_Turn", "Is_Working", "Status", "Position", "Turn_List", "Index_Group"); //System.out.println("EmployeeID\tEmployeeName\tCheckInTime\tTotal\tStatus\tPosition\n"); for (int i = 0; i < employee.size(); i++) { int index = getIndexByValue(employee, i + 1); String turnList = getStringTurn(employee.get(index)); - tb.addRow(employee.get(index).getEmployeeID(), employee.get(index).getEmpName(), dtf.format(employee.get(index).getCheckInTime()), Integer.toString(employee.get(index).getTotal()), Integer.toString(employee.get(index).getTotalTurn()), Boolean.toString(employee.get(index).isIsWorking()), Boolean.toString(employee.get(index).isActive()), Integer.toString(employee.get(index).position), turnList); + tb.addRow(employee.get(index).getEmployeeID(), employee.get(index).getEmpName(), + dtf.format(employee.get(index).getCheckInTime()), + Integer.toString(employee.get(index).getTotal()), + Integer.toString(employee.get(index).getTotalTurn()), + Boolean.toString(employee.get(index).isIsWorking()), + Boolean.toString(employee.get(index).isActive()), + Integer.toString(employee.get(index).position), turnList, + Integer.toString(employee.get(index).getIndexGroup())); } System.out.println(tb.toString()); } @@ -426,7 +432,7 @@ public static void print(ArrayList employee, boolean status) { TableBuilder tb = new TableBuilder(); tb.addRow("EmployeeID", "EmployeeName", "CheckInTime", "Total", "Total_Turn", "Is_Working", "Status", "Position", "Turn_List"); for (int i = 0; i < tmpInActive.size(); i++) { - int index = getIndexByValue(tmpInActive, employee.size()-tmpInActive.size() + 1); + int index = getIndexByValue(tmpInActive, employee.size() - tmpInActive.size() + 1); String turnList = getStringTurn(tmpInActive.get(index)); tb.addRow(tmpInActive.get(index).getEmployeeID(), tmpInActive.get(index).getEmpName(), @@ -442,7 +448,7 @@ public static void print(ArrayList employee, boolean status) { } } -// HELP FUNCTIO - UPDATE POSITION BASE ON: TOTALTURN, CHECK-IN TIME +// HELP FUNCTION - UPDATE POSITION BASE ON: TOTALTURN, CHECK-IN TIME /* Pseudo Code: 1. Count number of member (active+inactive) @@ -461,6 +467,8 @@ public static void updatePosition(ArrayList employee) { int numberActive = 0; int numberInActive = 0; int numberBusyWorker = 0; + int numberFreeWorker = 0; + BubbleSort b = new BubbleSort(); for (int i = 0; i < numberOfEmployee; i++) { if (employee.get(i).isActive()) { numberActive++; @@ -471,46 +479,100 @@ public static void updatePosition(ArrayList employee) { numberInActive++; } } -// create tmp array of inactive and sort inactive & index position - ArrayList tmpInActive = new ArrayList<>(numberInActive); - for (int i = 0; i < employee.size(); i++) { - if (employee.get(i).isActive() == false) { - tmpInActive.add(employee.get(i)); + numberFreeWorker = numberActive - numberBusyWorker; + + //System.out.println("employee object address is: "+ employee.); +//Create tmp array of inactive and sort inactive & index position +//Process Inactive worker array + if (numberInActive > 0) { + ArrayList tmpInActive = new ArrayList<>(numberInActive); + for (int i = 0; i < employee.size(); i++) { + if (employee.get(i).isActive() == false) { + tmpInActive.add(employee.get(i)); + } + } + b.bubbleSortTime(tmpInActive); + for (int i = 0; i < tmpInActive.size(); i++) { + tmpInActive.get(i).setPosition(i + 1 + numberActive); } - } - - BubbleSort b = new BubbleSort(); - b.bubbleSortTime(tmpInActive); - - for (int i = 0; i < tmpInActive.size(); i++) { - tmpInActive.get(i).setPosition(i + 1 + numberActive); } // Create tmp array of busy worker and sort by total , index position - ArrayList tmpBusyWorker = new ArrayList<>(numberBusyWorker); - for (int i = 0; i < employee.size(); i++) { - if (employee.get(i).isActive() && employee.get(i).isIsWorking()) { - tmpBusyWorker.add(employee.get(i)); +// Process Busy worker array + if (numberBusyWorker > 0) { + ArrayList tmpBusyWorker = new ArrayList<>(numberBusyWorker); + for (int i = 0; i < employee.size(); i++) { + if (employee.get(i).isActive() && employee.get(i).isIsWorking()) { + tmpBusyWorker.add(employee.get(i)); + } + } + b.bubbleSortTotal(tmpBusyWorker); +//set Position + for (int i = 0; i < tmpBusyWorker.size(); i++) { + tmpBusyWorker.get(i).setPosition(numberActive - numberBusyWorker + i + 1); } - } - - b.bubbleSortTotal(tmpBusyWorker); - - for (int i = 0; i < tmpBusyWorker.size(); i++) { - tmpBusyWorker.get(i).setPosition(numberActive - numberBusyWorker + i + 1); } // 9 active , 4 working, 2 inactive --> free = 5, busy =5, inactive =2 // Create active list and not busy, sort and index - ArrayList tmpFreeWorker = new ArrayList<>(numberActive - numberBusyWorker); - for (int i = 0; i < employee.size(); i++) { - if (employee.get(i).isActive() && !employee.get(i).isIsWorking()) { - tmpFreeWorker.add(employee.get(i)); +// Process Free worker array + + if (numberFreeWorker > 0) { + ArrayList tmpFreeWorker = new ArrayList<>(numberFreeWorker); + for (int i = 0; i < employee.size(); i++) { + if (employee.get(i).isActive() && !employee.get(i).isIsWorking()) { + tmpFreeWorker.add(employee.get(i)); + } } - } - b.bubbleSortTotalTurn(tmpFreeWorker); + b.bubbleSortTotalTurn(tmpFreeWorker); +//index group by Step_Turn + int tmpIndexGroup = 1; + if (tmpFreeWorker.size() > 0) { + tmpFreeWorker.get(0).setIndexGroup(tmpIndexGroup); + System.out.println("Employee: " + tmpFreeWorker.get(0).getEmpName() + " total_Turn: " + tmpFreeWorker.get(0).getTotalTurn()); + if (tmpFreeWorker.size() > 1) { + for (int i = 1; i < tmpFreeWorker.size(); i++) { + if ((tmpFreeWorker.get(i).getTotalTurn() - tmpFreeWorker.get(i - 1).getTotalTurn()) >= 15) { + tmpIndexGroup++; + tmpFreeWorker.get(i).setIndexGroup(tmpIndexGroup); + } else { + tmpFreeWorker.get(i).setIndexGroup(tmpIndexGroup); + } + System.out.println("Employee: " + tmpFreeWorker.get(i).getEmpName() + " total_Turn: " + tmpFreeWorker.get(i).getTotalTurn()); + } + } + } - for (int i = 0; i < tmpFreeWorker.size(); i++) { - tmpFreeWorker.get(i).setPosition(i + 1); + ArrayList> arraylist_employee = new ArrayList>(tmpIndexGroup); + if (tmpFreeWorker.size() > 1) { + ArrayList tmp = new ArrayList(); + tmp.add(tmpFreeWorker.get(0)); + //int tmp = tmpFreeWorker.get(0).getIndexGroup(); + for (int i = 1; i < tmpFreeWorker.size(); i++) { + if (tmpFreeWorker.get(i).getIndexGroup() != tmpFreeWorker.get(i - 1).getIndexGroup()) { + arraylist_employee.add(tmp); + System.out.println("Added group: " + arraylist_employee.size()+ " && with "+tmp.size()+" elements"); + tmp = new ArrayList(); + tmp.add(tmpFreeWorker.get(i)); + //arraylist_employee.get(index).add(tmpFreeWorker.get(i)); + } else { + tmp.add(tmpFreeWorker.get(i)); + //arraylist_employee.get(index).add(tmpFreeWorker.get(i)); + } + } + arraylist_employee.add(tmp); + System.out.println("Added last group: " + arraylist_employee.size()+ " && with "+tmp.size()+" elements"); + + } + + for (int i = 0; i < arraylist_employee.size(); i++) { + int position =1; + b.bubbleSortTime(arraylist_employee.get(i)); + for (int j=0;jLinh Mục & Phó Tế

Linh Mục Gioan Vianney Nguyễn Ngọc Thụ
Cha Chánh Xứ
Liên Lạc:  281.495.8133

Phó Tế Guise Nguyễn Sĩ Bạch    
Liên Lạc: bachsinguyen@gmail.com

Linh Mục và Phó Tế Giáo Xứ

Phó Tế Nguyễn Đức Cường    
Liên Lạc:  cdnguyen7@yahoo.com 

8503 S. KIRKWOOD HOUSTON TX 77099

Tel. 281.495.8133 Fax 281.568.1833 

info@giaoxungoiloi.org

Linh Mục Giuse Bùi Phương Tiến   
Cha Phó Xứ
Liên Lạc:  281.495.8133

\ No newline at end of file From 42842063213afb17977210ee00836d7b29ed8cc6 Mon Sep 17 00:00:00 2001 From: nhuytan <42280131+nhuytan@users.noreply.github.com> Date: Wed, 17 Oct 2018 19:53:33 -0500 Subject: [PATCH 3/3] Merge branch 'Test_Update_position' of https://github.com/nhuytan/TurnControl into Test_Update_position # Conflicts: # src/turncontrol/TurnControl.java --- build/classes/turncontrol/TurnControl.class | Bin 15189 -> 15012 bytes src/turncontrol/TurnControl.java | 21 +- src/turncontrol/test1.java | 244 +++++++++++--------- 3 files changed, 144 insertions(+), 121 deletions(-) diff --git a/build/classes/turncontrol/TurnControl.class b/build/classes/turncontrol/TurnControl.class index 28e860f7cba47f7870996e293ad114b859c17c8a..20dbd2321390eb3d83e36b0029549c2c5b867dda 100644 GIT binary patch literal 15012 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 diff --git a/src/turncontrol/TurnControl.java b/src/turncontrol/TurnControl.java index 41d0d46..e92b6aa 100644 --- a/src/turncontrol/TurnControl.java +++ b/src/turncontrol/TurnControl.java @@ -3,6 +3,8 @@ import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; import java.util.Scanner; /** @@ -24,8 +26,8 @@ public static void main(String[] args) { TableBuilder tbCommandGuide = new TableBuilder(); tbCommandGuide.addRow("Enter Command: ", "=========", "========="); tbCommandGuide.addRow("1-Check In", "2-Check Out", "e-Exit Program"); - tbCommandGuide.addRow("p-Print List", "3-Add Turn", "4-Remove Turn"); - tbCommandGuide.addRow("5-Revert Working Status", "6-Update Turn", "----"); + tbCommandGuide.addRow("3-Add Turn", "4-Remove Turn","5-Revert Working Status"); + tbCommandGuide.addRow("6-Update Turn", "p-print"); String commandGuide = tbCommandGuide.toString(); while (true) { @@ -480,7 +482,7 @@ public static void updatePosition(ArrayList employee) { } } numberFreeWorker = numberActive - numberBusyWorker; - + //System.out.println("employee object address is: "+ employee.); //Create tmp array of inactive and sort inactive & index position //Process Inactive worker array @@ -528,7 +530,7 @@ public static void updatePosition(ArrayList employee) { int tmpIndexGroup = 1; if (tmpFreeWorker.size() > 0) { tmpFreeWorker.get(0).setIndexGroup(tmpIndexGroup); - System.out.println("Employee: " + tmpFreeWorker.get(0).getEmpName() + " total_Turn: " + tmpFreeWorker.get(0).getTotalTurn()); + //System.out.println("Employee: " + tmpFreeWorker.get(0).getEmpName() + " total_Turn: " + tmpFreeWorker.get(0).getTotalTurn()); if (tmpFreeWorker.size() > 1) { for (int i = 1; i < tmpFreeWorker.size(); i++) { if ((tmpFreeWorker.get(i).getTotalTurn() - tmpFreeWorker.get(i - 1).getTotalTurn()) >= 15) { @@ -537,7 +539,7 @@ public static void updatePosition(ArrayList employee) { } else { tmpFreeWorker.get(i).setIndexGroup(tmpIndexGroup); } - System.out.println("Employee: " + tmpFreeWorker.get(i).getEmpName() + " total_Turn: " + tmpFreeWorker.get(i).getTotalTurn()); + //System.out.println("Employee: " + tmpFreeWorker.get(i).getEmpName() + " total_Turn: " + tmpFreeWorker.get(i).getTotalTurn()); } } } @@ -550,7 +552,7 @@ public static void updatePosition(ArrayList employee) { for (int i = 1; i < tmpFreeWorker.size(); i++) { if (tmpFreeWorker.get(i).getIndexGroup() != tmpFreeWorker.get(i - 1).getIndexGroup()) { arraylist_employee.add(tmp); - System.out.println("Added group: " + arraylist_employee.size()+ " && with "+tmp.size()+" elements"); + System.out.println("Added group: " + arraylist_employee.size() + " && with " + tmp.size() + " elements"); tmp = new ArrayList(); tmp.add(tmpFreeWorker.get(i)); //arraylist_employee.get(index).add(tmpFreeWorker.get(i)); @@ -560,15 +562,14 @@ public static void updatePosition(ArrayList employee) { } } arraylist_employee.add(tmp); - System.out.println("Added last group: " + arraylist_employee.size()+ " && with "+tmp.size()+" elements"); + System.out.println("Added last group: " + arraylist_employee.size() + " && with " + tmp.size() + " elements"); } for (int i = 0; i < arraylist_employee.size(); i++) { - int position =1; + int position = 1; b.bubbleSortTime(arraylist_employee.get(i)); - for (int j=0;j turnList; - int totalTurn, Total; - int position; - boolean active; - boolean isWorking; - - public boolean isIsWorking() { - return isWorking; - } - - public void setIsWorking(boolean isWorking) { - this.isWorking = isWorking; - } - - - public boolean isActive() { - return active; - } - - public void setActive(boolean active) { - this.active = active; - } - - - public String getEmployeeID() { - return EmployeeID; - } - - public void setEmployeeID(String EmployeeID) { - this.EmployeeID = EmployeeID; - } - - public String getEmpName() { - return EmpName; - } - - public void setEmpName(String EmpName) { - this.EmpName = EmpName; - } - - public LocalDateTime getCheckInTime() { - return CheckInTime; - } - - /** - * - * @param CheckInTime - */ - public void setCheckInTime(LocalDateTime CheckInTime) { - this.CheckInTime = CheckInTime; - } - - public test1(String EmployeeID, String EmpName, LocalDateTime CheckInTime) { - this.EmployeeID = EmployeeID; - this.EmpName = EmpName; - this.CheckInTime = CheckInTime; - this.Total=0; - this.totalTurn=0; - this.turnList = new ArrayList<>(); - this.active=true; - this.isWorking = false; - this.position= Integer.parseInt(EmployeeID); - - } - - public int getTotalTurn() { - return totalTurn; - } - - public void setTotalTurn(int TotalTurn) { - this.totalTurn = TotalTurn; - } - - public int getTotal() { - return Total; - } - - public void setTotal(int Total) { - this.Total = Total; - } - - public int getPosition() { - return position; - } - - public void setPosition(int position) { - this.position = position; - } - - -} +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package turncontrol; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Collections; + +/** + * + * @author nhuytan + * edit 1 + */ +public class test1 { + + public String EmployeeID; + public String EmpName; + LocalDateTime CheckInTime; + public ArrayList turnList; + int totalTurn, Total; + int position; + boolean active; + boolean isWorking; + + public boolean isIsWorking() { + return isWorking; + } + + public void setIsWorking(boolean isWorking) { + this.isWorking = isWorking; + } + + + public boolean isActive() { + return active; + } + + public void setActive(boolean active) { + this.active = active; + } + + + public String getEmployeeID() { + return EmployeeID; + } + + public void setEmployeeID(String EmployeeID) { + this.EmployeeID = EmployeeID; + } + + public String getEmpName() { + return EmpName; + } + + public void setEmpName(String EmpName) { + this.EmpName = EmpName; + } + + public LocalDateTime getCheckInTime() { + return CheckInTime; + } + + /** + * + * @param CheckInTime + */ + public void setCheckInTime(LocalDateTime CheckInTime) { + this.CheckInTime = CheckInTime; + } + + public test1(String EmployeeID, String EmpName, LocalDateTime CheckInTime) { + this.EmployeeID = EmployeeID; + this.EmpName = EmpName; + this.CheckInTime = CheckInTime; + this.Total=0; + this.totalTurn=0; + this.turnList = new ArrayList<>(); + this.active=true; + this.isWorking = false; + this.position= Integer.parseInt(EmployeeID); + + } + + public int getTotalTurn() { + return totalTurn; + } + + public void setTotalTurn(int TotalTurn) { + this.totalTurn = TotalTurn; + } + + public int getTotal() { + return Total; + } + + public void setTotal(int Total) { + this.Total = Total; + } + + public int getPosition() { + return position; + } + + public void setPosition(int position) { + this.position = position; + } + + public void testSwap() + { + ArrayList employee = new ArrayList<>(20); + System.out.println("employee adress " + System.identityHashCode(employee)); + // begin test + Employee e1 = new Employee("1","tan",LocalDateTime.now()); + System.out.println("e1 address " + System.identityHashCode(e1)); + Employee e2 = new Employee("2","loc",LocalDateTime.now()); + System.out.println("e2 address " + System.identityHashCode(e2)); + + employee.add(e1); + employee.add(e2); + System.out.println("e1 address after add " + System.identityHashCode(employee.get(0))); + System.out.println("e2 address adter add" + System.identityHashCode(employee.get(1))); + + //swap + Collections.swap(employee, 0, 1); + System.out.println("address after swap 0 " + System.identityHashCode(employee.get(0))); + System.out.println("address after swap 1 " + System.identityHashCode(employee.get(1))); + //end test + } + +}