Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
tdt4100
v2022
students
Commits
4a34fe4c
Commit
4a34fe4c
authored
Apr 01, 2022
by
Magnus Schjølberg
Browse files
test
parent
d8a62f24
Changes
14
Hide whitespace changes
Inline
Side-by-side
foreksempel/pom.xml
View file @
4a34fe4c
...
...
@@ -11,7 +11,7 @@
<dependency>
<groupId>
org.openjfx
</groupId>
<artifactId>
javafx-fxml
</artifactId>
<version>
1
6-ea+5
</version>
<version>
1
7.0.2
</version>
</dependency>
<!-- JUnit 5 -->
...
...
foreksempel/src/main/java/of7/kode/employees/Assistant.java
0 → 100644
View file @
4a34fe4c
package
of7.kode.employees
;
public
class
Assistant
extends
Employee
{
public
Assistant
(
String
name
)
{
super
(
name
,
"Assistant"
);
}
public
static
void
main
(
String
[]
args
)
{
Employee
assistant
=
new
Assistant
(
"Magnus"
);
assistant
.
performTask
(
"Arrange meeting"
);
assistant
.
performTask
(
"Order stock"
);
}
}
foreksempel/src/main/java/of7/lf/employees/Assistant.java
0 → 100644
View file @
4a34fe4c
package
of7.lf.employees
;
public
class
Assistant
extends
Employee
{
public
Assistant
(
String
name
)
{
super
(
name
,
"Assistant"
);
}
@Override
public
boolean
canPerformTask
(
String
task
)
{
return
task
.
equals
(
"Arrange meeting"
)
||
task
.
equals
(
"Send email"
);
}
public
static
void
main
(
String
[]
args
)
{
Employee
assistant
=
new
Assistant
(
"Magnus"
);
assistant
.
performTask
(
"Arrange meeting"
);
assistant
.
performTask
(
"Order stock"
);
}
}
foreksempel/src/main/java/of7/lf/employees/Boss.java
0 → 100644
View file @
4a34fe4c
package
of7.lf.employees
;
import
java.util.Arrays
;
import
java.util.List
;
public
class
Boss
extends
Employee
{
private
List
<
Employee
>
subordinates
;
public
Boss
(
String
name
,
List
<
Employee
>
subordinates
)
{
super
(
name
,
"Boss"
);
if
(
subordinates
.
isEmpty
())
{
throw
new
IllegalArgumentException
(
"A boss needs at least one subordinate"
);
}
this
.
subordinates
=
subordinates
;
}
public
Boss
(
String
name
,
Employee
...
employees
)
{
this
(
name
,
Arrays
.
asList
(
employees
));
}
@Override
public
boolean
canPerformTask
(
String
task
)
{
return
subordinates
.
stream
().
anyMatch
((
subordinate
)
->
subordinate
.
canPerformTask
(
task
));
}
@Override
public
void
performTask
(
String
task
)
{
subordinates
.
stream
()
.
filter
((
subordinate
)
->
subordinate
.
canPerformTask
(
task
))
.
findAny
()
.
orElseThrow
(()
->
new
IllegalArgumentException
(
"No subordinates can perform this task"
))
.
performTask
(
task
);
}
public
static
void
main
(
String
[]
args
)
{
Assistant
assistant
=
new
Assistant
(
"Magnus"
);
Consultant
temp
=
new
Consultant
(
"Trine"
,
"IT Consultant"
,
1
);
Boss
boss
=
new
Boss
(
"Børge"
,
assistant
,
temp
);
boss
.
performTask
(
"Arrange meeting"
);
boss
.
performTask
(
"Order stock"
);
boss
.
performTask
(
"Pay salaries"
);
}
}
foreksempel/src/main/java/of7/lf/employees/Consultant.java
0 → 100644
View file @
4a34fe4c
package
of7.lf.employees
;
public
class
Consultant
extends
Employee
{
private
int
numberOfRemainingTasks
;
public
Consultant
(
String
name
,
String
role
,
int
numberOfRemainingTasks
)
{
super
(
name
,
role
);
this
.
numberOfRemainingTasks
=
numberOfRemainingTasks
;
}
@Override
public
void
performTask
(
String
task
)
{
if
(
numberOfRemainingTasks
<=
0
)
{
throw
new
IllegalStateException
(
getName
()
+
" has performed all their tasks"
);
}
super
.
performTask
(
task
);
numberOfRemainingTasks
=
numberOfRemainingTasks
-
1
;
if
(
numberOfRemainingTasks
==
0
)
{
role
=
"Quit"
;
}
}
@Override
public
boolean
canPerformTask
(
String
task
)
{
return
numberOfRemainingTasks
>
0
;
}
public
static
void
main
(
String
[]
args
)
{
Consultant
employee
=
new
Consultant
(
"Magnus"
,
"Sommerjobber"
,
2
);
employee
.
performTask
(
"Svare på mail"
);
System
.
out
.
println
(
employee
.
getRole
());
employee
.
performTask
(
"Svare på mail"
);
System
.
out
.
println
(
employee
.
getRole
());
employee
.
performTask
(
"Svare på mail"
);
}
}
foreksempel/src/main/java/of7/lf/employees/Employee.java
0 → 100644
View file @
4a34fe4c
package
of7.lf.employees
;
public
abstract
class
Employee
{
private
String
name
;
protected
String
role
;
public
Employee
(
String
name
,
String
role
)
{
this
.
name
=
name
;
this
.
role
=
role
;
}
public
String
getName
()
{
return
name
;
}
public
String
getRole
()
{
return
role
;
}
public
void
performTask
(
String
task
)
{
if
(!
canPerformTask
(
task
))
{
throw
new
IllegalArgumentException
(
name
+
" cannot perform task: "
+
task
);
}
System
.
out
.
println
(
name
+
" ["
+
role
+
"] performed task: "
+
task
);
}
public
abstract
boolean
canPerformTask
(
String
task
);
}
foreksempel/src/main/java/of7/lf/pushnotifications/App.java
0 → 100644
View file @
4a34fe4c
package
of7.lf.pushnotifications
;
import
java.time.LocalDate
;
public
class
App
extends
PushNotificationSender
{
private
int
lastNotificationSent
=
0
;
public
void
sendPushNotification
(
String
notification
)
{
if
(
lastNotificationSent
==
LocalDate
.
now
().
toEpochDay
())
{
throw
new
IllegalArgumentException
(
"Daily notification already sent"
);
}
super
.
sendPushNotification
(
notification
);
lastNotificationSent
=
(
int
)
LocalDate
.
now
().
toEpochDay
();
}
}
foreksempel/src/main/java/of7/lf/pushnotifications/OfficialApp.java
0 → 100644
View file @
4a34fe4c
package
of7.lf.pushnotifications
;
public
class
OfficialApp
extends
PushNotificationSender
{
}
foreksempel/src/main/java/of7/lf/pushnotifications/Phone.java
0 → 100644
View file @
4a34fe4c
package
of7.lf.pushnotifications
;
import
java.util.ArrayList
;
import
java.util.List
;
public
class
Phone
implements
PushNotificationListener
{
private
String
name
;
private
List
<
String
>
notificationFeed
=
new
ArrayList
<>();
private
List
<
PushNotificationSender
>
installedApps
=
new
ArrayList
<>();
public
Phone
(
String
name
)
{
this
.
name
=
name
;
}
public
void
install
(
PushNotificationSender
app
)
{
if
(!
installedApps
.
contains
(
app
))
{
app
.
subscribe
(
this
);
installedApps
.
add
(
app
);
}
}
public
void
uninstall
(
PushNotificationSender
app
)
{
if
(
installedApps
.
contains
(
app
))
{
app
.
unsubscribe
(
this
);
installedApps
.
remove
(
app
);
}
}
@Override
public
void
receivePushNotification
(
String
notification
)
{
notificationFeed
.
add
(
notification
);
}
public
String
printPushNotifications
()
{
return
name
+
":\n"
+
String
.
join
(
"\n"
,
notificationFeed
);
}
public
static
void
main
(
String
[]
args
)
{
Phone
iPhone11Pro
=
new
Phone
(
"Magnus sin iPhone"
);
Phone
SamsungGalaxy
=
new
Phone
(
"Kjetils Android"
);
App
OOPmini
=
new
App
();
App
OOPbank
=
new
App
();
OfficialApp
SlowTime
=
new
OfficialApp
();
iPhone11Pro
.
install
(
OOPmini
);
iPhone11Pro
.
install
(
OOPbank
);
iPhone11Pro
.
install
(
SlowTime
);
SamsungGalaxy
.
install
(
OOPmini
);
SlowTime
.
sendPushNotification
(
"Mamma ringer..."
);
SlowTime
.
sendPushNotification
(
"5x tapte anrop fra Sjef McSjefete"
);
OOPmini
.
sendPushNotification
(
"Nå har vi 40% rabatt på Hummus!"
);
System
.
out
.
println
(
iPhone11Pro
.
printPushNotifications
());
System
.
out
.
println
();
System
.
out
.
println
(
SamsungGalaxy
.
printPushNotifications
());
System
.
out
.
println
();
OOPbank
.
sendPushNotification
(
"Søk om høyere kredittgrense idag!"
);
System
.
out
.
println
(
iPhone11Pro
.
printPushNotifications
());
System
.
out
.
println
();
System
.
out
.
println
(
SamsungGalaxy
.
printPushNotifications
());
OOPbank
.
sendPushNotification
(
"VÆR SÅ VENNLIG, SØK OM FORBRUKSLÅN"
);
}
}
foreksempel/src/main/java/of7/lf/pushnotifications/PushNotificationListener.java
0 → 100644
View file @
4a34fe4c
package
of7.lf.pushnotifications
;
public
interface
PushNotificationListener
{
void
receivePushNotification
(
String
notification
);
}
foreksempel/src/main/java/of7/lf/pushnotifications/PushNotificationSender.java
0 → 100644
View file @
4a34fe4c
package
of7.lf.pushnotifications
;
import
java.util.ArrayList
;
import
java.util.List
;
public
class
PushNotificationSender
{
private
List
<
PushNotificationListener
>
clients
=
new
ArrayList
<>();
private
List
<
String
>
sentPushNotifications
=
new
ArrayList
<>();
protected
void
sendPushNotification
(
String
notification
)
{
sentPushNotifications
.
add
(
notification
);
firePushNotification
(
notification
);
}
public
void
subscribe
(
PushNotificationListener
listener
)
{
if
(!
clients
.
contains
(
listener
))
{
clients
.
add
(
listener
);
}
}
public
void
unsubscribe
(
PushNotificationListener
listener
)
{
if
(
clients
.
contains
(
listener
))
{
clients
.
remove
(
listener
);
}
}
private
void
firePushNotification
(
String
notification
)
{
for
(
PushNotificationListener
appListener
:
clients
)
{
appListener
.
receivePushNotification
(
notification
);
}
}
}
selfcheckout-example/pom.xml
View file @
4a34fe4c
...
...
@@ -11,7 +11,7 @@
<dependency>
<groupId>
org.openjfx
</groupId>
<artifactId>
javafx-fxml
</artifactId>
<version>
1
6-ea+5
</version>
<version>
1
7.0.2
</version>
</dependency>
<!-- JUnit 5 -->
...
...
snakebird-example/pom.xml
View file @
4a34fe4c
...
...
@@ -11,7 +11,7 @@
<dependency>
<groupId>
org.openjfx
</groupId>
<artifactId>
javafx-fxml
</artifactId>
<version>
1
6-ea+5
</version>
<version>
1
7.0.2
</version>
</dependency>
<!-- JUnit 5 -->
...
...
todolist-example/pom.xml
View file @
4a34fe4c
...
...
@@ -9,7 +9,7 @@
<dependency>
<groupId>
org.openjfx
</groupId>
<artifactId>
javafx-fxml
</artifactId>
<version>
1
6
</version>
<version>
1
7.0.2
</version>
</dependency>
<!-- JUnit 5 -->
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment