diff --git a/dirty-flag/etc/dirty-flag.png b/dirty-flag/etc/dirty-flag.png
index b882b6665..98d4f679d 100644
Binary files a/dirty-flag/etc/dirty-flag.png and b/dirty-flag/etc/dirty-flag.png differ
diff --git a/dirty-flag/etc/dirty-flag.ucls b/dirty-flag/etc/dirty-flag.ucls
new file mode 100644
index 000000000..760d456f7
--- /dev/null
+++ b/dirty-flag/etc/dirty-flag.ucls
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dirty-flag/pom.xml b/dirty-flag/pom.xml
index aa76b5261..a50381a56 100644
--- a/dirty-flag/pom.xml
+++ b/dirty-flag/pom.xml
@@ -5,11 +5,11 @@
com.iluwatar
java-design-patterns
- 1.19.0-SNAPSHOT
+ 1.20.0-SNAPSHOT
com.iluwatar
dirty-flag
- 1.19.0-SNAPSHOT
+ 1.20.0-SNAPSHOT
dirty-flag
http://maven.apache.org
diff --git a/dirty-flag/src/main/java/com/iluwatar/dirtyflag/App.java b/dirty-flag/src/main/java/com/iluwatar/dirtyflag/App.java
index dccc4756b..4d72b34da 100644
--- a/dirty-flag/src/main/java/com/iluwatar/dirtyflag/App.java
+++ b/dirty-flag/src/main/java/com/iluwatar/dirtyflag/App.java
@@ -57,7 +57,7 @@ public class App {
executorService.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
- World world = World.getInstance();
+ World world = new World();
List countries = world.fetch();
System.out.println("Our world currently has the following countries:-");
for (String country : countries) {
diff --git a/dirty-flag/src/main/java/com/iluwatar/dirtyflag/DataFetcher.java b/dirty-flag/src/main/java/com/iluwatar/dirtyflag/DataFetcher.java
index c850f044a..9123bf32d 100644
--- a/dirty-flag/src/main/java/com/iluwatar/dirtyflag/DataFetcher.java
+++ b/dirty-flag/src/main/java/com/iluwatar/dirtyflag/DataFetcher.java
@@ -15,23 +15,11 @@ import java.util.List;
*/
public class DataFetcher {
- private static DataFetcher df;
private final String filename = "world.txt";
- private long lastFetched = -1;
+ private long lastFetched;
- private DataFetcher() {
- }
-
- /**
- * Init.
- *
- * @return DataFetcher instance
- */
- public static DataFetcher getInstance() {
- if (df == null) {
- df = new DataFetcher();
- }
- return df;
+ public DataFetcher() {
+ this.lastFetched = -1;
}
private boolean isDirty(long fileLastModified) {
@@ -66,6 +54,6 @@ public class DataFetcher {
return data;
}
- return null;
+ return new ArrayList();
}
}
diff --git a/dirty-flag/src/main/java/com/iluwatar/dirtyflag/World.java b/dirty-flag/src/main/java/com/iluwatar/dirtyflag/World.java
index 7d3c5c0c4..d356e6581 100644
--- a/dirty-flag/src/main/java/com/iluwatar/dirtyflag/World.java
+++ b/dirty-flag/src/main/java/com/iluwatar/dirtyflag/World.java
@@ -12,22 +12,12 @@ import java.util.List;
*/
public class World {
- private static World world;
- private static List countries = new ArrayList();
+ private List countries;
+ private DataFetcher df;
- private World() {
- }
-
- /**
- * Init.
- *
- * @return World instance
- */
- public static World getInstance() {
- if (world == null) {
- world = new World();
- }
- return world;
+ public World() {
+ this.countries = new ArrayList();
+ this.df = new DataFetcher();
}
/**
@@ -37,10 +27,9 @@ public class World {
* @return List of strings
*/
public List fetch() {
- DataFetcher df = DataFetcher.getInstance();
List data = df.fetch();
- countries = data == null ? countries : data;
+ countries = data.isEmpty() ? countries : data;
return countries;
}
diff --git a/dirty-flag/src/test/java/org/dirty/flag/DirtyFlagTest.java b/dirty-flag/src/test/java/org/dirty/flag/DirtyFlagTest.java
index b6cb57fa4..fc103e865 100644
--- a/dirty-flag/src/test/java/org/dirty/flag/DirtyFlagTest.java
+++ b/dirty-flag/src/test/java/org/dirty/flag/DirtyFlagTest.java
@@ -24,10 +24,8 @@ package org.dirty.flag;
import static org.junit.jupiter.api.Assertions.assertTrue;
-import java.lang.reflect.Field;
import java.util.List;
-import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import com.iluwatar.dirtyflag.DataFetcher;
@@ -39,23 +37,16 @@ import com.iluwatar.dirtyflag.DataFetcher;
*/
public class DirtyFlagTest {
- @BeforeEach
- public void reset() throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
- Field instance = DataFetcher.class.getDeclaredField("df");
- instance.setAccessible(true);
- instance.set(null, null);
- }
-
@Test
public void testIsDirty() {
- DataFetcher df = DataFetcher.getInstance();
+ DataFetcher df = new DataFetcher();
List countries = df.fetch();
assertTrue(!countries.isEmpty());
}
@Test
public void testIsNotDirty() {
- DataFetcher df = DataFetcher.getInstance();
+ DataFetcher df = new DataFetcher();
df.fetch();
List countries = df.fetch();
assertTrue(countries == null);