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);