From d19aaa43ccb39257fc68fafe37c8b28772a34ae8 Mon Sep 17 00:00:00 2001
From: Brady James Garvin <bgarvin@cse.unl.edu>
Date: Fri, 22 Feb 2019 11:24:05 -0600
Subject: [PATCH] Added refactorings from class.
---
.../both_dry_violations/AgeCohort.java | 16 +++++++++
.../both_dry_violations/Cohort.java | 19 +++++++++++
.../both_dry_violations/Patient.java | 25 ++++++++++++++
.../both_dry_violations/RegionalCohort.java | 14 ++++++++
.../dry_violation_in_caller/Bradycardia.java | 12 +++++++
.../dry_violation_in_caller/Condition.java | 5 +++
.../dry_violation_in_caller/Patient.java | 30 +++++++++++++++++
.../dry_violation_in_caller/Tachycardia.java | 12 +++++++
.../dry_violation_in_method_body/Alert.java | 33 +++++++++++++++++++
.../SIRSAlert.java | 17 ++++++++++
10 files changed, 183 insertions(+)
create mode 100644 src/main/java/edu/unl/cse/soft161/refactored/both_dry_violations/AgeCohort.java
create mode 100644 src/main/java/edu/unl/cse/soft161/refactored/both_dry_violations/Cohort.java
create mode 100644 src/main/java/edu/unl/cse/soft161/refactored/both_dry_violations/Patient.java
create mode 100644 src/main/java/edu/unl/cse/soft161/refactored/both_dry_violations/RegionalCohort.java
create mode 100644 src/main/java/edu/unl/cse/soft161/refactored/dry_violation_in_caller/Bradycardia.java
create mode 100644 src/main/java/edu/unl/cse/soft161/refactored/dry_violation_in_caller/Condition.java
create mode 100644 src/main/java/edu/unl/cse/soft161/refactored/dry_violation_in_caller/Patient.java
create mode 100644 src/main/java/edu/unl/cse/soft161/refactored/dry_violation_in_caller/Tachycardia.java
create mode 100644 src/main/java/edu/unl/cse/soft161/refactored/dry_violation_in_method_body/Alert.java
create mode 100644 src/main/java/edu/unl/cse/soft161/refactored/dry_violation_in_method_body/SIRSAlert.java
diff --git a/src/main/java/edu/unl/cse/soft161/refactored/both_dry_violations/AgeCohort.java b/src/main/java/edu/unl/cse/soft161/refactored/both_dry_violations/AgeCohort.java
new file mode 100644
index 0000000..34ece7f
--- /dev/null
+++ b/src/main/java/edu/unl/cse/soft161/refactored/both_dry_violations/AgeCohort.java
@@ -0,0 +1,16 @@
+package edu.unl.cse.soft161.refactored.both_dry_violations;
+
+public class AgeCohort extends Cohort {
+ private int minimum;
+ private int maximum;
+
+ public AgeCohort(int minimum, int maximum) {
+ this.minimum = minimum;
+ this.maximum = maximum;
+ }
+
+ @Override
+ protected boolean includes(Patient patient) {
+ return minimum <= patient.getAge() && patient.getAge() <= maximum;
+ }
+}
diff --git a/src/main/java/edu/unl/cse/soft161/refactored/both_dry_violations/Cohort.java b/src/main/java/edu/unl/cse/soft161/refactored/both_dry_violations/Cohort.java
new file mode 100644
index 0000000..acd09b5
--- /dev/null
+++ b/src/main/java/edu/unl/cse/soft161/refactored/both_dry_violations/Cohort.java
@@ -0,0 +1,19 @@
+package edu.unl.cse.soft161.refactored.both_dry_violations;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public abstract class Cohort {
+ protected abstract boolean includes(Patient patient);
+
+ public List<Patient> filter(List<Patient> patients) {
+ List<Patient> results = new ArrayList<Patient>();
+ for (Patient patient : patients) {
+ if (includes(patient)) {
+ results.add(patient);
+ }
+ }
+ return results;
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/edu/unl/cse/soft161/refactored/both_dry_violations/Patient.java b/src/main/java/edu/unl/cse/soft161/refactored/both_dry_violations/Patient.java
new file mode 100644
index 0000000..049775b
--- /dev/null
+++ b/src/main/java/edu/unl/cse/soft161/refactored/both_dry_violations/Patient.java
@@ -0,0 +1,25 @@
+package edu.unl.cse.soft161.refactored.both_dry_violations;
+
+public class Patient {
+ private String name;
+ private String region;
+ private int age;
+
+ public Patient(String name, String region, int age) {
+ this.name = name;
+ this.region = region;
+ this.age = age;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getRegion() {
+ return region;
+ }
+
+ public int getAge() {
+ return age;
+ }
+}
diff --git a/src/main/java/edu/unl/cse/soft161/refactored/both_dry_violations/RegionalCohort.java b/src/main/java/edu/unl/cse/soft161/refactored/both_dry_violations/RegionalCohort.java
new file mode 100644
index 0000000..9ab068e
--- /dev/null
+++ b/src/main/java/edu/unl/cse/soft161/refactored/both_dry_violations/RegionalCohort.java
@@ -0,0 +1,14 @@
+package edu.unl.cse.soft161.refactored.both_dry_violations;
+
+public class RegionalCohort extends Cohort {
+ private String region;
+
+ public RegionalCohort(String region) {
+ this.region = region;
+ }
+
+ @Override
+ protected boolean includes(Patient patient) {
+ return patient.getRegion().equals(region);
+ }
+}
diff --git a/src/main/java/edu/unl/cse/soft161/refactored/dry_violation_in_caller/Bradycardia.java b/src/main/java/edu/unl/cse/soft161/refactored/dry_violation_in_caller/Bradycardia.java
new file mode 100644
index 0000000..c9a53af
--- /dev/null
+++ b/src/main/java/edu/unl/cse/soft161/refactored/dry_violation_in_caller/Bradycardia.java
@@ -0,0 +1,12 @@
+package edu.unl.cse.soft161.refactored.dry_violation_in_caller;
+
+public class Bradycardia implements Condition {
+ @Override
+ public boolean affects(Patient patient) {
+ return patient.getObservation("HR") < 60.0;
+ }
+
+ public String toString() {
+ return "bradycardia";
+ }
+}
diff --git a/src/main/java/edu/unl/cse/soft161/refactored/dry_violation_in_caller/Condition.java b/src/main/java/edu/unl/cse/soft161/refactored/dry_violation_in_caller/Condition.java
new file mode 100644
index 0000000..ee64658
--- /dev/null
+++ b/src/main/java/edu/unl/cse/soft161/refactored/dry_violation_in_caller/Condition.java
@@ -0,0 +1,5 @@
+package edu.unl.cse.soft161.refactored.dry_violation_in_caller;
+
+public interface Condition {
+ boolean affects(Patient patient);
+}
\ No newline at end of file
diff --git a/src/main/java/edu/unl/cse/soft161/refactored/dry_violation_in_caller/Patient.java b/src/main/java/edu/unl/cse/soft161/refactored/dry_violation_in_caller/Patient.java
new file mode 100644
index 0000000..ce446ef
--- /dev/null
+++ b/src/main/java/edu/unl/cse/soft161/refactored/dry_violation_in_caller/Patient.java
@@ -0,0 +1,30 @@
+package edu.unl.cse.soft161.refactored.dry_violation_in_caller;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class Patient {
+ private String name;
+ private Map<String, Double>observations;
+ private List<Condition> monitoredConditions;
+
+ public Patient(String name, List<Condition>monitoredConditions) {
+ this.name = name;
+ observations = new HashMap<String, Double>();
+ this.monitoredConditions = monitoredConditions;
+ }
+
+ public Double getObservation(String concept) {
+ return observations.get(concept);
+ }
+
+ public void setObservation(String concept, Double value) {
+ observations.put(concept, value);
+ for (Condition condition : monitoredConditions) {
+ if (condition != null && condition.affects(this)) {
+ System.out.println("Warning: " + name + " has " + condition + ".");
+ }
+ }
+ }
+}
diff --git a/src/main/java/edu/unl/cse/soft161/refactored/dry_violation_in_caller/Tachycardia.java b/src/main/java/edu/unl/cse/soft161/refactored/dry_violation_in_caller/Tachycardia.java
new file mode 100644
index 0000000..dc5f78d
--- /dev/null
+++ b/src/main/java/edu/unl/cse/soft161/refactored/dry_violation_in_caller/Tachycardia.java
@@ -0,0 +1,12 @@
+package edu.unl.cse.soft161.refactored.dry_violation_in_caller;
+
+public class Tachycardia implements Condition {
+ @Override
+ public boolean affects(Patient patient) {
+ return patient.getObservation("HR") > 100.0;
+ }
+
+ public String toString() {
+ return "tachycardia";
+ }
+}
diff --git a/src/main/java/edu/unl/cse/soft161/refactored/dry_violation_in_method_body/Alert.java b/src/main/java/edu/unl/cse/soft161/refactored/dry_violation_in_method_body/Alert.java
new file mode 100644
index 0000000..50fd67f
--- /dev/null
+++ b/src/main/java/edu/unl/cse/soft161/refactored/dry_violation_in_method_body/Alert.java
@@ -0,0 +1,33 @@
+package edu.unl.cse.soft161.refactored.dry_violation_in_method_body;
+
+import java.time.ZonedDateTime;
+
+public class Alert {
+ private String type;
+ private String patient;
+ private ZonedDateTime timestamp;
+ private String message;
+
+ public Alert(String type, String patient, ZonedDateTime timestamp, String message) {
+ this.type = type;
+ this.patient = patient;
+ this.timestamp = timestamp;
+ this.message = message;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public String getPatient() {
+ return patient;
+ }
+
+ public ZonedDateTime getTimestamp() {
+ return timestamp;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+}
diff --git a/src/main/java/edu/unl/cse/soft161/refactored/dry_violation_in_method_body/SIRSAlert.java b/src/main/java/edu/unl/cse/soft161/refactored/dry_violation_in_method_body/SIRSAlert.java
new file mode 100644
index 0000000..b194503
--- /dev/null
+++ b/src/main/java/edu/unl/cse/soft161/refactored/dry_violation_in_method_body/SIRSAlert.java
@@ -0,0 +1,17 @@
+package edu.unl.cse.soft161.refactored.dry_violation_in_method_body;
+
+import java.time.ZonedDateTime;
+import java.util.List;
+
+public class SIRSAlert extends Alert {
+ private List<String> evidence;
+
+ public SIRSAlert(String type, String patient, ZonedDateTime timestamp, String message, List<String> evidence) {
+ super(type, patient, timestamp, message);
+ this.evidence = evidence;
+ }
+
+ public List<String> getEvidence() {
+ return evidence;
+ }
+}
--
GitLab