From ec0ec38b0630cf1f1b8879b16ea988fb42b7c356 Mon Sep 17 00:00:00 2001 From: soufiane-cheouati <46105138+soufiane-cheouati@users.noreply.github.com> Date: Fri, 1 Feb 2019 20:16:40 +0000 Subject: [PATCH 1/4] Adding marker interfaces files --- .../baeldung/markerinterface/Deletable.java | 5 +++++ .../markerinterface/DeletableShape.java | 7 ++++++ .../baeldung/markerinterface/Rectangle.java | 22 +++++++++++++++++++ .../baeldung/markerinterface/ShapeDao.java | 14 ++++++++++++ 4 files changed, 48 insertions(+) create mode 100644 core-java-lang-oop/src/main/java/com/baeldung/markerinterface/Deletable.java create mode 100644 core-java-lang-oop/src/main/java/com/baeldung/markerinterface/DeletableShape.java create mode 100644 core-java-lang-oop/src/main/java/com/baeldung/markerinterface/Rectangle.java create mode 100644 core-java-lang-oop/src/main/java/com/baeldung/markerinterface/ShapeDao.java diff --git a/core-java-lang-oop/src/main/java/com/baeldung/markerinterface/Deletable.java b/core-java-lang-oop/src/main/java/com/baeldung/markerinterface/Deletable.java new file mode 100644 index 0000000000..d40d81b1d4 --- /dev/null +++ b/core-java-lang-oop/src/main/java/com/baeldung/markerinterface/Deletable.java @@ -0,0 +1,5 @@ +package com.baeldung.markerinterface; + +public interface Deletable extends DeletableShape { + +} diff --git a/core-java-lang-oop/src/main/java/com/baeldung/markerinterface/DeletableShape.java b/core-java-lang-oop/src/main/java/com/baeldung/markerinterface/DeletableShape.java new file mode 100644 index 0000000000..d5ae52c9f2 --- /dev/null +++ b/core-java-lang-oop/src/main/java/com/baeldung/markerinterface/DeletableShape.java @@ -0,0 +1,7 @@ +package com.baeldung.markerinterface; + +public interface DeletableShape { + double getArea(); + + double getCircumference(); +} \ No newline at end of file diff --git a/core-java-lang-oop/src/main/java/com/baeldung/markerinterface/Rectangle.java b/core-java-lang-oop/src/main/java/com/baeldung/markerinterface/Rectangle.java new file mode 100644 index 0000000000..f8ea987c6f --- /dev/null +++ b/core-java-lang-oop/src/main/java/com/baeldung/markerinterface/Rectangle.java @@ -0,0 +1,22 @@ +package com.baeldung.markerinterface; + +public class Rectangle implements Deletable { + + private double width; + private double height; + + public Rectangle(double width, double height) { + this.width = width; + this.height = height; + } + + @Override + public double getArea() { + return width * height; + } + + @Override + public double getCircumference() { + return 2 * (width + height); + } +} diff --git a/core-java-lang-oop/src/main/java/com/baeldung/markerinterface/ShapeDao.java b/core-java-lang-oop/src/main/java/com/baeldung/markerinterface/ShapeDao.java new file mode 100644 index 0000000000..49a389bd46 --- /dev/null +++ b/core-java-lang-oop/src/main/java/com/baeldung/markerinterface/ShapeDao.java @@ -0,0 +1,14 @@ +package com.baeldung.markerinterface; + +public class ShapeDao { + + public boolean delete(Object object) { + if (!(object instanceof Deletable)) { + return false; + } + // Calling the code that deletes the entity from the database + + return true; + } + +} From f76d6bd66849a0ea148ea3cacb8835b9e64fcd9b Mon Sep 17 00:00:00 2001 From: soufiane-cheouati <46105138+soufiane-cheouati@users.noreply.github.com> Date: Fri, 1 Feb 2019 20:18:24 +0000 Subject: [PATCH 2/4] Adding marker interfaces UT --- .../MarkerInterfaceUnitTest.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 core-java-lang-oop/src/test/java/com/baeldung/markerinterface/MarkerInterfaceUnitTest.java diff --git a/core-java-lang-oop/src/test/java/com/baeldung/markerinterface/MarkerInterfaceUnitTest.java b/core-java-lang-oop/src/test/java/com/baeldung/markerinterface/MarkerInterfaceUnitTest.java new file mode 100644 index 0000000000..70d32ba253 --- /dev/null +++ b/core-java-lang-oop/src/test/java/com/baeldung/markerinterface/MarkerInterfaceUnitTest.java @@ -0,0 +1,26 @@ +package com.baeldung.markerinterface; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +public class MarkerInterfaceUnitTest { + + @Test + public void givenDeletableObjectThenTrueReturned() { + ShapeDao shapeDao = new ShapeDao(); + Object rectangle = new Rectangle(2, 3); + + boolean result = shapeDao.delete(rectangle); + assertEquals(true, result); + } + + @Test + public void givenNonDeletableObjectThenFalseReturned() { + ShapeDao shapeDao = new ShapeDao(); + Object object = new Object(); + + boolean result = shapeDao.delete(object); + assertEquals(false, result); + } +} From 565f69ecf30a83ca13c7c1fa2c1e47f6c12a7b16 Mon Sep 17 00:00:00 2001 From: soufiane-cheouati <46105138+soufiane-cheouati@users.noreply.github.com> Date: Sun, 3 Feb 2019 20:44:04 +0000 Subject: [PATCH 3/4] Add files via upload --- .../java/com/baeldung/markerinterface/DeletableShape.java | 6 ++---- .../main/java/com/baeldung/markerinterface/Rectangle.java | 2 +- .../src/main/java/com/baeldung/markerinterface/Shape.java | 6 ++++++ .../main/java/com/baeldung/markerinterface/ShapeDao.java | 2 +- 4 files changed, 10 insertions(+), 6 deletions(-) create mode 100644 core-java-lang-oop/src/main/java/com/baeldung/markerinterface/Shape.java diff --git a/core-java-lang-oop/src/main/java/com/baeldung/markerinterface/DeletableShape.java b/core-java-lang-oop/src/main/java/com/baeldung/markerinterface/DeletableShape.java index d5ae52c9f2..7674407da8 100644 --- a/core-java-lang-oop/src/main/java/com/baeldung/markerinterface/DeletableShape.java +++ b/core-java-lang-oop/src/main/java/com/baeldung/markerinterface/DeletableShape.java @@ -1,7 +1,5 @@ package com.baeldung.markerinterface; -public interface DeletableShape { - double getArea(); +public interface DeletableShape extends Shape { - double getCircumference(); -} \ No newline at end of file +} diff --git a/core-java-lang-oop/src/main/java/com/baeldung/markerinterface/Rectangle.java b/core-java-lang-oop/src/main/java/com/baeldung/markerinterface/Rectangle.java index f8ea987c6f..d64ffad0a2 100644 --- a/core-java-lang-oop/src/main/java/com/baeldung/markerinterface/Rectangle.java +++ b/core-java-lang-oop/src/main/java/com/baeldung/markerinterface/Rectangle.java @@ -1,6 +1,6 @@ package com.baeldung.markerinterface; -public class Rectangle implements Deletable { +public class Rectangle implements DeletableShape { private double width; private double height; diff --git a/core-java-lang-oop/src/main/java/com/baeldung/markerinterface/Shape.java b/core-java-lang-oop/src/main/java/com/baeldung/markerinterface/Shape.java new file mode 100644 index 0000000000..2e53aefc03 --- /dev/null +++ b/core-java-lang-oop/src/main/java/com/baeldung/markerinterface/Shape.java @@ -0,0 +1,6 @@ +package com.baeldung.markerinterface; + +public interface Shape { + double getArea(); + double getCircumference(); +} \ No newline at end of file diff --git a/core-java-lang-oop/src/main/java/com/baeldung/markerinterface/ShapeDao.java b/core-java-lang-oop/src/main/java/com/baeldung/markerinterface/ShapeDao.java index 49a389bd46..bc988a793d 100644 --- a/core-java-lang-oop/src/main/java/com/baeldung/markerinterface/ShapeDao.java +++ b/core-java-lang-oop/src/main/java/com/baeldung/markerinterface/ShapeDao.java @@ -3,7 +3,7 @@ package com.baeldung.markerinterface; public class ShapeDao { public boolean delete(Object object) { - if (!(object instanceof Deletable)) { + if (!(object instanceof DeletableShape)) { return false; } // Calling the code that deletes the entity from the database From afb46cd8cf3483b76280db355bef38507425dbdb Mon Sep 17 00:00:00 2001 From: soufiane-cheouati <46105138+soufiane-cheouati@users.noreply.github.com> Date: Sun, 3 Feb 2019 20:56:53 +0000 Subject: [PATCH 4/4] Delete Deletable.java --- .../main/java/com/baeldung/markerinterface/Deletable.java | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 core-java-lang-oop/src/main/java/com/baeldung/markerinterface/Deletable.java diff --git a/core-java-lang-oop/src/main/java/com/baeldung/markerinterface/Deletable.java b/core-java-lang-oop/src/main/java/com/baeldung/markerinterface/Deletable.java deleted file mode 100644 index d40d81b1d4..0000000000 --- a/core-java-lang-oop/src/main/java/com/baeldung/markerinterface/Deletable.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.baeldung.markerinterface; - -public interface Deletable extends DeletableShape { - -}