-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCompanyManager.java
97 lines (94 loc) · 2.67 KB
/
CompanyManager.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
import java.util.ArrayList;
import java.util.UUID;
/**
* Manage company objects and provides method for manipulating them
* @author Gavin Hewitt
* @version "v1.0"
* Date: 10/15/23
*/
public class CompanyManager {
private static CompanyManager companyManager;
private static ArrayList<Company> companies;
private CompanyManager() {
companies = new ArrayList<Company>();
}
/**
* retrieves the singleton instance of the CompanyManager class
* @return CompanyManager instance
*/
public static CompanyManager getInstance() {
if(companyManager == null)
companyManager = new CompanyManager();
return companyManager;
}
/**
* Checks if Company to be added is present in list and a valid company and
* adds to the list of Companies if true.
* @param company Company to be added
* @return boolean if successfully added
*/
public boolean addCompany(Company company) {
for(Company currCompany : companies) {
if(currCompany.equals(company))
return false;
}
companies.add(company);
AppFacade.getInstance().setActiveCompany(company);
return true;
}
/**
* Iterates through ArrayList of Company objects and removes the specified
* Company if present.
* @param company Company to be removed
* @return Company removed
*/
public Company removeCompany(Company company) {
for(Company currCompany : companies) {
if(currCompany.equals(company)) {
companies.remove(currCompany);
return currCompany;
}
}
return null;
}
/**
* Retrieves company object by its unique ID.
*
* @param id The UUID of the Company to be retrieved
* @return The company with the specified ID, or null if not found
*/
public Company getCompany(UUID id) {
for(Company company : companies) {
if(id.equals(company.getID()))
return company;
}
return null;
}
/**
* Retrieves a Company object by its name
* @param name name of the company to be retrieved
* @return company with the specified name, or null if not found
*/
public Company getCompany(String name) {
for(Company company : companies) {
if(name.toLowerCase().equals(company.getName().toLowerCase()))
return company;
}
return null;
}
/**
* gets the list of all companies managed by this CompanyManager.
*
* @return ArrayList of Company objects
*/
public ArrayList<Company> getCompanies() {
return companies;
}
/**
* saves the list of companies to persistent storage.
* @return true if the companies are successfully saved, false otherwise
*/
public boolean saveCompanies() {
return DataWriter.saveCompanies();
}
}