System Development Techniques Individual Assignment
ITTMS/.DS_Store
__MACOSX/ITTMS/._.DS_Store
ITTMS/.classpath
ITTMS/.project
SDT org.eclipse.jdt.core.javabuilder org.eclipse.jdt.core.javanature
ITTMS/.settings/org.eclipse.jdt.core.prefs
eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.targetPlatform=13 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve org.eclipse.jdt.core.compiler.compliance=13 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning org.eclipse.jdt.core.compiler.release=enabled org.eclipse.jdt.core.compiler.source=13
ITTMS/src/ITTMS.java
ITTMS/src/ITTMS.java
import
Domain
.
*
;
public
class
ITTMS
{
public
static
void
main
(
String
[]
args
)
{
// TODO Auto-generated method stub
new
Domain
.
ITTMS
().
run
();
}
}
ITTMS/src/General/Helper.java
ITTMS/src/General/Helper.java
package
General
;
import
java
.
util
.
InputMismatchException
;
import
java
.
util
.
Scanner
;
public
class
Helper
{
public
static
void
printBlankLines
(
int
n
)
{
for
(
int
i
=
0
;
i
<
n
;
i
++
)
{
System
.
out
.
println
();
}
}
public
static
String
getString
(
String
message
)
{
Scanner
in
=
new
Scanner
(
System
.
in
);
System
.
out
.
print
(
message
);
String
input
=
in
.
nextLine
();
return
input
;
}
public
static
int
getInt
(
String
message
)
{
Scanner
in
=
new
Scanner
(
System
.
in
);
int
input
=
0
;
try
{
// implement exception handling if user enter non integer value
System
.
out
.
print
(
message
);
input
=
in
.
nextInt
();
}
catch
(
InputMismatchException
e
)
{
System
.
out
.
println
(
"Please enter an integer !"
);
in
=
new
Scanner
(
System
.
in
);
}
return
input
;
}
public
static
int
getInt
(
String
message
,
int
min
,
int
max
)
{
int
input
=
0
;
while
(
true
)
{
input
=
getInt
(
message
);
if
(
input
<
min
||
input
>
max
)
{
System
.
out
.
println
(
"Input should be between "
+
min
+
" and "
+
max
);
}
else
{
break
;
}
}
return
input
;
}
public
static
int
getChoice
(
int
max
)
{
Scanner
in
=
new
Scanner
(
System
.
in
);
System
.
out
.
print
(
"Please enter ( 1 - "
+
max
+
" ) > "
);
int
choice
=
0
;
while
(
true
)
{
try
{
// implement exception handling if user enter non integer value
choice
=
in
.
nextInt
();
if
(
!
(
choice
<=
0
||
choice
>
max
))
{
break
;
}
else
{
throw
new
InputMismatchException
();
}
}
catch
(
InputMismatchException
e
)
{
System
.
out
.
println
(
"Please enter an integer ( 1 - "
+
max
+
" ) !"
);
System
.
out
.
print
(
"Please enter again > "
);
in
=
new
Scanner
(
System
.
in
);
}
}
return
choice
;
}
}
ITTMS/src/DAO/AdministratorDAO.java
ITTMS/src/DAO/AdministratorDAO.java
package
DAO
;
import
Model
.
Administrator
;
public
class
AdministratorDAO
{
public
Administrator
getAdministrator
()
{
//fake admin
Administrator
admin
=
new
Administrator
(
"password"
);
return
admin
;
}
}
ITTMS/src/DAO/SkillDAO.java
ITTMS/src/DAO/SkillDAO.java
package
DAO
;
import
java
.
util
.
*
;
import
Model
.
Skill
;
public
class
SkillDAO
{
private
ArrayList
<
Skill
>
skills
;
public
SkillDAO
()
{
//fake skills database data
skills
=
new
ArrayList
<
Skill
>
();
//public Skill(int skillID,String name, int level) {
Skill
skill1
=
new
Skill
(
1
,
"Java 2 Enterprise Edition"
,
1
);
Skill
skill2
=
new
Skill
(
2
,
"Java 2 Enterprise Edition"
,
2
);
Skill
skill3
=
new
Skill
(
3
,
"C# .Net"
,
1
);
Skill
skill4
=
new
Skill
(
4
,
"C# .Net"
,
2
);
Skill
skill5
=
new
Skill
(
5
,
"Oracle database administration"
,
1
);
Skill
skill6
=
new
Skill
(
6
,
"Oracle database administration"
,
2
);
Skill
skill7
=
new
Skill
(
7
,
"MySQL database administration"
,
1
);
Skill
skill8
=
new
Skill
(
8
,
"MySQL database administration"
,
2
);
Skill
skill9
=
new
Skill
(
9
,
"Azure cloud administration"
,
1
);
Skill
skill10
=
new
Skill
(
10
,
"Azure cloud administration"
,
2
);
Skill
skill11
=
new
Skill
(
11
,
"AWS cloud administration"
,
1
);
Skill
skill12
=
new
Skill
(
12
,
"AWS cloud administration"
,
2
);
skills
.
add
(
skill1
);
skills
.
add
(
skill2
);
skills
.
add
(
skill3
);
skills
.
add
(
skill4
);
skills
.
add
(
skill5
);
skills
.
add
(
skill6
);
skills
.
add
(
skill7
);
skills
.
add
(
skill8
);
skills
.
add
(
skill9
);
skills
.
add
(
skill10
);
skills
.
add
(
skill11
);
skills
.
add
(
skill12
);
}
public
void
removeSkillByID
(
int
id
)
{
Skill
skill
=
getSkillByID
(
id
);
skills
.
remove
(
skill
);
}
public
void
addSkill
(
String
name
,
int
level
)
{
int
nextSkillID
=
getNextSkillID
();
Skill
newSkill
=
new
Skill
(
nextSkillID
,
name
,
level
);
skills
.
add
(
newSkill
);
}
public
int
getNextSkillID
()
{
int
id
=
0
;
for
(
Skill
s
:
skills
)
{
if
(
s
.
getSkillID
()
>
id
)
{
id
=
s
.
getSkillID
();
}
}
return
id
+
1
;
}
public
ArrayList
<
Skill
>
getSkills
()
{
return
skills
;
}
public
Skill
getSkillByID
(
int
id
)
{
Skill
skill
=
null
;
for
(
Skill
s
:
skills
)
{
if
(
s
.
getSkillID
()
==
id
)
{
skill
=
s
;
break
;
}
}
return
skill
;
}
public
boolean
isSkillIDValid
(
int
skillID
)
{
boolean
isFound
=
false
;
for
(
Skill
s
:
skills
)
{
if
(
s
.
getSkillID
()
==
skillID
)
{
isFound
=
true
;
break
;
}
}
return
isFound
;
}
public
Skill
getSkillByNameAndLevel
(
String
skillName
,
int
level
)
{
Skill
skill
=
null
;
for
(
Skill
s
:
skills
)
{
if
(
s
.
getName
().
equals
(
skillName
)
&&
s
.
getLevel
()
==
level
)
{
skill
=
s
;
break
;
}
}
return
skill
;
}
}
ITTMS/src/DAO/StaffDAO.java
ITTMS/src/DAO/StaffDAO.java
package
DAO
;
import
java
.
util
.
*
;
import
Domain
.
ITTMS
;
import
Model
.
StaffSkill
;
import
Model
.
Staff
;
public
class
StaffDAO
{
private
ArrayList
<
Staff
>
staffs
;
private
SkillDAO
skills
;
public
StaffDAO
(){
//fake staff database data
staffs
=
new
ArrayList
<
Staff
>
();
skills
=
ITTMS
.
getSkillDAO
();
Staff
s1
=
new
Staff
(
1
,
"user1"
,
"password"
,
"Staff 1"
);
s1
.
addSkill
(
skills
.
getSkillByID
(
1
));
s1
.
addSkill
(
skills
.
getSkillByID
(
3
));
Staff
s2
=
new
Staff
(
2
,
"user2"
,
"password"
,
"Staff 2"
);
s2
.
addSkill
(
skills
.
getSkillByID
(
2
));
s2
.
addSkill
(
skills
.
getSkillByID
(
4
));
Staff
s3
=
new
Staff
(
3
,
"user3"
,
"password"
,
"Staff 3"
);
s3
.
addSkill
(
skills
.
getSkillByID
(
5
));
s3
.
addSkill
(
skills
.
getSkillByID
(
6
));
staffs
.
add
(
s1
);
staffs
.
add
(
s2
);
staffs
.
add
(
s3
);
}
public
Staff
getStaffByUserName
(
String
username
)
{
Staff
staff
=
null
;
for
(
Staff
s
:
staffs
)
{
if
(
s
.
getUsername
().
equals
(
username
))
{
staff
=
s
;
break
;
}
}
return
staff
;
}
public
boolean
isValidStaffID
(
int
staffID
)
{
boolean
isValid
=
true
;
if
(
getStaffByID
(
staffID
)
==
null
)
{
isValid
=
false
;
}
return
isValid
;
}
public
Staff
getStaffByID
(
int
staffID
)
{
Staff
staff
=
null
;
for
(
Staff
s
:
staffs
)
{
if
(
s
.
getStaffID
()
==
staffID
)
{
staff
=
s
;
break
;
}
}
return
staff
;
}
public
ArrayList
<
Staff
>
getStaffList
(){
return
staffs
;
}
}
ITTMS/src/Model/Skill.java
ITTMS/src/Model/Skill.java
package
Model
;
public
class
Skill
{
private
int
skillID
;
private
String
name
;
private
int
level
;
public
Skill
(
int
skillID
,
String
name
,
int
level
)
{
this
.
skillID
=
skillID
;
this
.
name
=
name
;
this
.
level
=
level
;
}
public
int
getSkillID
()
{
return
skillID
;
}
public
String
getName
()
{
return
name
;
}
public
int
getLevel
()
{
return
level
;
}
public
void
display
()
{
System
.
out
.
println
(
"Skill ID:"
+
skillID
+
" Name: "
+
name
+
" Level:"
+
level
);
}
}
ITTMS/src/Model/StaffSkill.java
ITTMS/src/Model/StaffSkill.java
package
Model
;
import
java
.
util
.
*
;
public
class
StaffSkill
{
private
int
staffID
;
private
ArrayList
<
Skill
>
skills
;
public
StaffSkill
(
int
staffID
)
{
this
.
staffID
=
staffID
;
this
.
skills
=
new
ArrayList
<
Skill
>
();
}
public
ArrayList
<
Skill
>
getSkills
()
{
return
skills
;
}
public
void
addSkill
(
Skill
skill
)
{
this
.
skills
.
add
(
skill
);
}
public
int
getStaffID
()
{
return
staffID
;
}
public
void
display
()
{
for
(
Skill
r
:
skills
)
{
r
.
display
();
}
}
public
boolean
isSkillInStaff
(
String
skillName
)
{
boolean
skillInStaff
=
false
;
for
(
Skill
r
:
skills
)
{
if
(
r
.
getName
().
equals
(
skillName
))
{
skillInStaff
=
true
;
break
;
}
}
return
skillInStaff
;
}
public
void
removeSkillByName
(
String
skillName
){
for
(
Skill
skill
:
skills
)
{
if
(
skill
.
getName
().
equals
(
skillName
))
{
skills
.
remove
(
skill
);
break
;
}
}
}
public
void
removeSkillByID
(
int
skillIDToRemove
){
for
(
Skill
skill
:
skills
)
{
if
(
skill
.
getSkillID
()
==
skillIDToRemove
)
{
skills
.
remove
(
skill
);
break
;
}
}
}
}
ITTMS/src/Model/User.java
ITTMS/src/Model/User.java
package
Model
;
public
class
User
{
private
String
username
;
private
String
password
;
public
User
(
String
username
,
String
password
)
{
this
.
username
=
username
;
this
.
password
=
password
;
}
public
String
getUsername
()
{
return
username
;
}
public
boolean
authenticateUser
(
String
password
)
{
//Suppose to use SHA algorithm here,
//use clear password for simplification
boolean
status
=
false
;
if
(
this
.
password
.
equals
(
password
))
{
status
=
true
;
}
return
status
;
}
}
ITTMS/src/Model/Administrator.java
ITTMS/src/Model/Administrator.java
package
Model
;
public
class
Administrator
extends
User
{
public
Administrator
(
String
password
)
{
super
(
"admin"
,
password
);
}
}
ITTMS/src/Model/Staff.java
ITTMS/src/Model/Staff.java
package
Model
;
import
java
.
util
.
*
;
public
class
Staff
extends
User
{
private
int
staffID
;
private
String
name
;
private
String
appointment
;
private
StaffSkill
staffSkills
;
public
Staff
(
int
staffID
,
String
username
,
String
password
,
String
name
)
{
super
(
username
,
password
);
this
.
staffID
=
staffID
;
this
.
name
=
name
;
this
.
staffSkills
=
new
StaffSkill
(
staffID
);
}
public
int
getStaffID
()
{
return
staffID
;
}
public
void
addSkill
(
Skill
skill
)
{
this
.
staffSkills
.
addSkill
(
skill
);
}
public
void
removeSkillByID
(
int
skillIDToRemove
)
{
this
.
staffSkills
.
removeSkillByID
(
skillIDToRemove
);
}
public
StaffSkill
getStaffSkills
()
{
return
staffSkills
;
}
public
ArrayList
<
Skill
>
getStaffSkillList
()
{
return
staffSkills
.
getSkills
();
}
public
boolean
isSkillIDInStaff
(
int
skillID
)
{
ArrayList
<
Skill
>
skills
=
staffSkills
.
getSkills
();
boolean
isSkillIDInStaff
=
false
;
for
(
Skill
s
:
skills
)
{
if
(
s
.
getSkillID
()
==
skillID
)
{
isSkillIDInStaff
=
true
;
break
;
}
}
return
isSkillIDInStaff
;
}
public
void
display
()
{
System
.
out
.
println
(
"Staff ID :"
+
staffID
+
" Name:"
+
name
);
}
}
ITTMS/src/View/AdminAssignSkillToStaffView.java
ITTMS/src/View/AdminAssignSkillToStaffView.java
package
View
;
public
class
AdminAssignSkillToStaffView
extends
AdminView
{
public
static
int
getStaffIDToAddSkill
()
{
return
getInt
(
"Enter staff ID to add skill >"
);
}
public
static
int
getSkillIDToAdd
()
{
return
getInt
(
"Enter Skill ID to add >"
);
}
public
static
void
errorMessageSkillIDAlreadyInStaff
()
{
println
(
"Skill ID already in Staff"
);
}
public
static
void
successMessageSkillAssignedToStaff
()
{
println
(
"Skill assigned to staff"
);
}
}
ITTMS/src/View/ITTMSAdminView.java
ITTMS/src/View/ITTMSAdminView.java
package
View
;
import
General
.
Helper
;
public
class
ITTMSAdminView
extends
View
{
public
static
void
displayMenu
()
{
Helper
.
printBlankLines
(
5
);
System
.
out
.
println
(
"*******************************"
);
System
.
out
.
println
(
"ITTMS Administrator"
);
System
.
out
.
println
(
"1. Manage Skills"
);
System
.
out
.
println
(
"2. Manage Staffs"
);
System
.
out
.
println
(
"3. Exit"
);
System
.
out
.
println
(
"*******************************"
);
}
public
static
int
getChoice
()
{
return
getChoice
(
3
);
}
}
ITTMS/src/View/AdminAddSkillView.java
ITTMS/src/View/AdminAddSkillView.java
package
View
;
public
class
AdminAddSkillView
extends
AdminView
{
public
static
String
getNewSkillName
()
{
return
getString
(
"Enter new skill name >"
);
}
public
static
int
getNewSkillLevel
()
{
return
getInt
(
"Enter new skill level >"
);
}
public
static
void
successMessageSkillAdded
()
{
println
(
"New Skill added"
);
}
}
ITTMS/src/View/AdminRemoveSkillFromStaffView.java
ITTMS/src/View/AdminRemoveSkillFromStaffView.java
package
View
;
public
class
AdminRemoveSkillFromStaffView
extends
AdminView
{
public
static
int
getStaffIDToRemoveSkill
()
{
return
getInt
(
"Enter staff ID to remove skill:"
);
}
public
static
int
getSkillIDToRemove
()
{
return
getInt
(
"Enter skill ID to remove skill:"
);
}
public
static
void
successMessageSkillRemovedFromStaff
()
{
println
(
"Skill removed from staff"
);
}
}
ITTMS/src/View/AdminManageStaffSkillView.java
ITTMS/src/View/AdminManageStaffSkillView.java
package
View
;
import
General
.
Helper
;
public
class
AdminManageStaffSkillView
extends
AdminView
{
public
static
void
displayMenu
()
{
Helper
.
printBlankLines
(
5
);
System
.
out
.
println
(
"*******************************"
);
System
.
out
.
println
(
"ITTMS Administrator Manage Staff Skills"
);
System
.
out
.
println
(
"1. List Staff Skill"
);
System
.
out
.
println
(
"2. Assign Skill to Staff"
);
System
.
out
.
println
(
"3. Remove Skill from Staff"
);
System
.
out
.
println
(
"4. Exit"
);
System
.
out
.
println
(
"*******************************"
);
}
public
static
int
getChoice
()
{
return
getChoice
(
4
);
}
}
ITTMS/src/View/AdminListSkillsView.java
ITTMS/src/View/AdminListSkillsView.java
package
View
;
public
class
AdminListSkillsView
extends
AdminView
{
}
ITTMS/src/View/StaffListSkillView.java
ITTMS/src/View/StaffListSkillView.java
package
View
;
import
java
.
util
.
ArrayList
;
import
Model
.
*
;
public
class
StaffListSkillView
{
public
static
void
listStaffSkills
(
Staff
staff
)
{
System
.
out
.
println
(
"Listing skills for "
+
staff
.
getUsername
());
ArrayList
<
Skill
>
skills
=
staff
.
getStaffSkillList
();
for
(
Skill
s
:
skills
)
{
s
.
display
();
}
}
}
ITTMS/src/View/ITTMSMainView.java
ITTMS/src/View/ITTMSMainView.java
package
View
;
import
General
.
Helper
;
public
class
ITTMSMainView
extends
View
{
public
static
void
displayMenu
()
{
Helper
.
printBlankLines
(
5
);
System
.
out
.
println
(
"*******************************"
);
System
.
out
.
println
(
"ITTMS"
);
System
.
out
.
println
(
"1. Administrator"
);
System
.
out
.
println
(
"2. Staff"
);
System
.
out
.
println
(
"3. Exit"
);
System
.
out
.
println
(
"*******************************"
);
}
public
static
int
getChoice
()
{
System
.
out
.
println
(
"Enter choice >"
);
return
Helper
.
getChoice
(
3
);
}
public
static
void
displayExitMessage
()
{
System
.
out
.
println
(
"Exit System"
);
}
public
static
String
getUsername
()
{
//suppose to replace with keyboard input
return
"user1"
;
}
public
static
String
getUserPassword
()
{
//suppose to replace with keyboard input
return
"password"
;
}
public
static
String
getAdminPassword
()
{
//suppose to replace with keyboard input
return
"password"
;
}
public
static
void
displayLoginFailed
()
{
System
.
out
.
println
(
"Login failed"
);
}
}
ITTMS/src/View/AdminListStaffSkillView.java
ITTMS/src/View/AdminListStaffSkillView.java
package
View
;
public
class
AdminListStaffSkillView
extends
AdminView
{
public
static
int
getStaffIDToListSkill
()
{
return
getInt
(
"Enter staff ID >"
);
}
}
ITTMS/src/View/View.java
ITTMS/src/View/View.java
package
View
;
import
General
.
Helper
;
public
class
View
{
public
static
int
getChoice
(
int
numOfChoice
)
{
System
.
out
.
println
(
"Enter choice"
);
return
Helper
.
getChoice
(
numOfChoice
);
}
public
static
void
println
(
String
message
)
{
System
.
out
.
println
(
message
);
}
public
static
void
print
(
String
message
)
{
System
.
out
.
print
(
message
);
}
public
static
String
getString
(
String
message
)
{
return
Helper
.
getString
(
message
);
}
public
static
int
getInt
(
String
message
)
{
return
Helper
.
getInt
(
message
);
}
}
ITTMS/src/View/AdminView.java
ITTMS/src/View/AdminView.java
package
View
;
import
java
.
util
.
ArrayList
;
import
DAO
.
SkillDAO
;
import
DAO
.
StaffDAO
;
import
Domain
.
ITTMS
;
import
General
.
Helper
;
import
Model
.
Skill
;
import
Model
.
Staff
;
public
class
AdminView
extends
View
{
public
static
void
listAllSkills
()
{
System
.
out
.
println
(
"List all skills"
);
SkillDAO
skillDAO
=
ITTMS
.
getSkillDAO
();
ArrayList
<
Skill
>
skills
=
skillDAO
.
getSkills
();
for
(
Skill
s
:
skills
)
{
s
.
display
();
}
}
public
static
void
listAllStaffs
()
{
StaffDAO
staffDAO
=
ITTMS
.
getStaffDAO
();
ArrayList
<
Staff
>
staffs
=
staffDAO
.
getStaffList
();
System
.
out
.
println
(
"Display staff list"
);
for
(
Staff
s
:
staffs
)
{
s
.
display
();
}
}
public
static
void
listStaffSkill
(
Staff
staff
)
{
ArrayList
<
Skill
>
skills
=
staff
.
getStaffSkillList
();
for
(
Skill
s
:
skills
)
{
s
.
display
();
}
}
public
static
void
errorMessageInvalidStaffID
()
{
print
(
"Invalid staff ID"
);
}
public
static
void
errorMessageInvalidSkillID
()
{
print
(
"Invalid skill ID"
);
}
}
ITTMS/src/View/AdminDeleteSkillView.java
ITTMS/src/View/AdminDeleteSkillView.java
package
View
;
public
class
AdminDeleteSkillView
extends
AdminView
{
public
static
int
getSkillIDToDelete
()
{
return
getInt
(
"Enter skill id to delete >"
);
}
public
static
void
displayError
()
{
println
(
"Skill ID not found"
);
}
public
static
void
displaySuccess
()
{
println
(
"Skill removed"
);
}
}
ITTMS/src/View/AdminManageSkillView.java
ITTMS/src/View/AdminManageSkillView.java
package
View
;
import
General
.
Helper
;
public
class
AdminManageSkillView
extends
AdminView
{
public
static
void
displayMenu
()
{
Helper
.
printBlankLines
(
5
);
System
.
out
.
println
(
"*******************************"
);
System
.
out
.
println
(
"ITTMS Administrator Manage Skills"
);
System
.
out
.
println
(
"1. View Skills"
);
System
.
out
.
println
(
"2. Add Skills"
);
System
.
out
.
println
(
"3. Delete Skills"
);
System
.
out
.
println
(
"4. Exit"
);
System
.
out
.
println
(
"*******************************"
);
}
public
static
int
getChoice
()
{
return
getChoice
(
4
);
}
}
ITTMS/src/Domain/ITTMSAdmin.java
ITTMS/src/Domain/ITTMSAdmin.java
package
Domain
;
import
DAO
.
*
;
import
Model
.
*
;
import
View
.
*
;
public
class
ITTMSAdmin
{
public
void
run
()
{
while
(
true
)
{
ITTMSAdminView
.
displayMenu
();
int
choice
=
ITTMSAdminView
.
getChoice
();
switch
(
choice
)
{
case
1
:
manageSkill
();
break
;
case
2
:
manageStaffSkill
();
break
;
}
if
(
choice
==
3
)
{
break
;
}
}
}
private
void
manageSkill
()
{
new
AdminManageSkill
().
run
();
}
private
void
manageStaffSkill
()
{
new
AdminManageStaffSkill
().
run
();
}
}
ITTMS/src/Domain/AdminRemoveSkillFromStaff.java
ITTMS/src/Domain/AdminRemoveSkillFromStaff.java
package
Domain
;
import
DAO
.
*
;
import
Model
.
*
;
import
View
.
*
;
public
class
AdminRemoveSkillFromStaff
{
public
void
run
()
{
//System.out.println("AdminRemoveSkillFromStaff yet to implement");
AdminRemoveSkillFromStaffView
.
listAllStaffs
();
int
staffID
=
AdminRemoveSkillFromStaffView
.
getStaffIDToRemoveSkill
();
StaffDAO
staffDAO
=
ITTMS
.
getStaffDAO
();
if
(
!
staffDAO
.
isValidStaffID
(
staffID
))
{
AdminRemoveSkillFromStaffView
.
errorMessageInvalidStaffID
();
return
;
}
Staff
staff
=
staffDAO
.
getStaffByID
(
staffID
);
AdminRemoveSkillFromStaffView
.
listStaffSkill
(
staff
);
int
skillIDToRemove
=
AdminRemoveSkillFromStaffView
.
getSkillIDToRemove
();
if
(
staff
.
isSkillIDInStaff
(
skillIDToRemove
))
{
staff
.
removeSkillByID
(
skillIDToRemove
);
AdminRemoveSkillFromStaffView
.
successMessageSkillRemovedFromStaff
();
}
else
{
AdminRemoveSkillFromStaffView
.
errorMessageInvalidSkillID
();
}
}
}
ITTMS/src/Domain/AdminManageSkill.java
ITTMS/src/Domain/AdminManageSkill.java
package
Domain
;
import
View
.
*
;
public
class
AdminManageSkill
{
public
void
run
()
{
while
(
true
)
{
AdminManageSkillView
.
displayMenu
();
int
choice
=
AdminManageSkillView
.
getChoice
();
switch
(
choice
)
{
case
1
:
listSkills
();
break
;
case
2
:
addSkill
();
break
;
case
3
:
deleteSkill
();
break
;
}
if
(
choice
==
4
)
{
break
;
}
}
}
private
void
listSkills
()
{
new
AdminListSkills
().
run
();
}
private
void
addSkill
()
{
new
AdminAddSkill
().
run
();
}
private
void
deleteSkill
()
{
new
AdminDeleteSkill
().
run
();
}
}
ITTMS/src/Domain/ITTMS.java
ITTMS/src/Domain/ITTMS.java
package
Domain
;
import
View
.
*
;
import
DAO
.
*
;
import
Model
.
*
;
public
class
ITTMS
{
private
static
StaffDAO
staffDAO
;
private
static
SkillDAO
skillDAO
;
private
AdministratorDAO
adminDAO
;
public
ITTMS
()
{
skillDAO
=
new
SkillDAO
();
staffDAO
=
new
StaffDAO
();
adminDAO
=
new
AdministratorDAO
();
}
public
void
run
()
{
while
(
true
)
{
ITTMSMainView
.
displayMenu
();
int
choice
=
ITTMSMainView
.
getChoice
();
switch
(
choice
)
{
case
1
:
String
adminPassword
=
ITTMSMainView
.
getAdminPassword
();
Administrator
admin
=
adminDAO
.
getAdministrator
();
if
(
admin
.
authenticateUser
(
adminPassword
))
{
new
ITTMSAdmin
().
run
();
}
else
{
ITTMSMainView
.
displayLoginFailed
();
}
break
;
case
2
:
String
username
=
ITTMSMainView
.
getUsername
();
String
password
=
ITTMSMainView
.
getUserPassword
();
Staff
staff
=
staffDAO
.
getStaffByUserName
(
username
);
if
(
staff
.
authenticateUser
(
password
))
{
new
ITTMSStaff
(
staff
).
run
();
}
else
{
ITTMSMainView
.
displayLoginFailed
();
}
break
;
}
if
(
choice
==
3
)
{
ITTMSMainView
.
displayExitMessage
();
break
;
}
}
}
public
static
StaffDAO
getStaffDAO
()
{
return
staffDAO
;
}
public
static
SkillDAO
getSkillDAO
()
{
return
skillDAO
;
}
}
ITTMS/src/Domain/AdminManageStaffSkill.java
ITTMS/src/Domain/AdminManageStaffSkill.java
package
Domain
;
import
View
.
AdminManageStaffSkillView
;
public
class
AdminManageStaffSkill
{
public
void
run
()
{
while
(
true
)
{
AdminManageStaffSkillView
.
displayMenu
();
int
choice
=
AdminManageStaffSkillView
.
getChoice
();
switch
(
choice
)
{
case
1
:
listStaffStaff
();
break
;
case
2
:
assignSkillToStaff
();
break
;
case
3
:
removeSkillFromStaff
();
break
;
}
if
(
choice
==
4
)
{
break
;
}
}
}
private
void
listStaffStaff
()
{
new
AdminListStaffSkill
().
run
();
}
private
void
assignSkillToStaff
()
{
new
AdminAssignSkillToStaff
().
run
();
}
private
void
removeSkillFromStaff
()
{
new
AdminRemoveSkillFromStaff
().
run
();
}
}
ITTMS/src/Domain/AdminDeleteSkill.java
ITTMS/src/Domain/AdminDeleteSkill.java
package
Domain
;
import
View
.
*
;
import
DAO
.
*
;
public
class
AdminDeleteSkill
{
public
void
run
()
{
int
skillIDToDelete
=
AdminDeleteSkillView
.
getSkillIDToDelete
();
SkillDAO
skillDAO
=
ITTMS
.
getSkillDAO
();
if
(
skillDAO
.
isSkillIDValid
(
skillIDToDelete
))
{
skillDAO
.
removeSkillByID
(
skillIDToDelete
);
AdminDeleteSkillView
.
displaySuccess
();
}
else
{
AdminDeleteSkillView
.
errorMessageInvalidSkillID
();
}
}
}
ITTMS/src/Domain/StaffListSkill.java
ITTMS/src/Domain/StaffListSkill.java
package
Domain
;
import
View
.
*
;
import
Domain
.
*
;
import
Model
.
*
;
public
class
StaffListSkill
{
private
Staff
staff
;
public
StaffListSkill
(
Staff
staff
)
{
this
.
staff
=
staff
;
}
public
void
run
()
{
StaffListSkillView
.
listStaffSkills
(
staff
);
}
}
ITTMS/src/Domain/ITTMSStaff.java
ITTMS/src/Domain/ITTMSStaff.java
package
Domain
;
import
Model
.
*
;
import
View
.
*
;
import
java
.
util
.
*
;
public
class
ITTMSStaff
{
private
Staff
staff
;
private
StaffListSkill
staffListSkill
;
public
ITTMSStaff
(
Staff
staff
)
{
this
.
staff
=
staff
;
staffListSkill
=
new
StaffListSkill
(
staff
);
}
public
void
run
()
{
staffListSkill
.
run
();
}
}
ITTMS/src/Domain/AdminAssignSkillToStaff.java
ITTMS/src/Domain/AdminAssignSkillToStaff.java
package
Domain
;
import
View
.
*
;
import
DAO
.
*
;
import
Model
.
*
;
public
class
AdminAssignSkillToStaff
{
public
void
run
()
{
AdminManageSkillView
.
listAllStaffs
();
int
staffID
=
AdminAssignSkillToStaffView
.
getStaffIDToAddSkill
();
StaffDAO
staffDAO
=
ITTMS
.
getStaffDAO
();
if
(
!
staffDAO
.
isValidStaffID
(
staffID
))
{
AdminAssignSkillToStaffView
.
errorMessageInvalidStaffID
();
return
;
}
AdminAssignSkillToStaffView
.
listAllSkills
();
int
skillID
=
AdminAssignSkillToStaffView
.
getSkillIDToAdd
();
SkillDAO
skillDAO
=
ITTMS
.
getSkillDAO
();
if
(
!
skillDAO
.
isSkillIDValid
(
skillID
))
{
AdminAssignSkillToStaffView
.
errorMessageInvalidSkillID
();
return
;
}
if
(
isSkillInStaff
(
staffID
,
skillID
))
{
AdminAssignSkillToStaffView
.
errorMessageSkillIDAlreadyInStaff
();
}
else
{
assignSkillToStaff
(
staffID
,
skillID
);
AdminAssignSkillToStaffView
.
successMessageSkillAssignedToStaff
();
}
}
private
void
assignSkillToStaff
(
int
staffID
,
int
skillID
)
{
SkillDAO
skillDAO
=
ITTMS
.
getSkillDAO
();
Skill
skill
=
skillDAO
.
getSkillByID
(
skillID
);
StaffDAO
staffDAO
=
ITTMS
.
getStaffDAO
();
Staff
staff
=
staffDAO
.
getStaffByID
(
staffID
);
staff
.
addSkill
(
skill
);
}
private
boolean
isSkillInStaff
(
int
staffID
,
int
skillID
)
{
StaffDAO
staffDAO
=
ITTMS
.
getStaffDAO
();
Staff
staff
=
staffDAO
.
getStaffByID
(
staffID
);
return
staff
.
isSkillIDInStaff
(
skillID
);
}
}
ITTMS/src/Domain/AdminListSkills.java
ITTMS/src/Domain/AdminListSkills.java
package
Domain
;
import
View
.
AdminListSkillsView
;
public
class
AdminListSkills
{
public
void
run
()
{
AdminListSkillsView
.
listAllSkills
();
}
}
ITTMS/src/Domain/AdminAddSkill.java
ITTMS/src/Domain/AdminAddSkill.java
package
Domain
;
import
View
.
*
;
import
Model
.
*
;
import
DAO
.
*
;
public
class
AdminAddSkill
{
public
void
run
()
{
//get skill to add
String
name
=
AdminAddSkillView
.
getNewSkillName
();
int
level
=
AdminAddSkillView
.
getNewSkillLevel
();
//create new skill object
SkillDAO
skillDAO
=
ITTMS
.
getSkillDAO
();
skillDAO
.
addSkill
(
name
,
level
);
AdminAddSkillView
.
successMessageSkillAdded
();
}
}
ITTMS/src/Domain/AdminListStaffSkill.java
ITTMS/src/Domain/AdminListStaffSkill.java
package
Domain
;
import
DAO
.
*
;
import
View
.
*
;
import
Model
.
*
;
public
class
AdminListStaffSkill
{
public
void
run
()
{
AdminListStaffSkillView
.
listAllStaffs
();
int
staffID
=
AdminListStaffSkillView
.
getStaffIDToListSkill
();
StaffDAO
staffDAO
=
ITTMS
.
getStaffDAO
();
if
(
!
staffDAO
.
isValidStaffID
(
staffID
))
{
AdminListStaffSkillView
.
errorMessageInvalidStaffID
();
return
;
}
Staff
staff
=
staffDAO
.
getStaffByID
(
staffID
);
AdminListStaffSkillView
.
listStaffSkill
(
staff
);
}
}