From 20062faae69c8a3b9b2b7d15080e13cc5bda5667 Mon Sep 17 00:00:00 2001 From: Aleksandar Dudukovic Date: Wed, 3 May 2017 17:50:35 +0200 Subject: [PATCH] All without Readme and pumlid --- marker/etc/MarkerDiagram.png | Bin 0 -> 6461 bytes marker/etc/MarkerDiagram.ucls | 41 ++++++++++++++++++++++++++++ marker/pom.xml | 15 ++++++++++ marker/src/main/java/App.java | 31 +++++++++++++++++++++ marker/src/main/java/Thief.java | 12 ++++++++ marker/src/test/java/AppTest.java | 17 ++++++++++++ marker/src/test/java/GuardTest.java | 16 +++++++++++ marker/src/test/java/ThiefTest.java | 15 ++++++++++ 8 files changed, 147 insertions(+) create mode 100644 marker/etc/MarkerDiagram.png create mode 100644 marker/etc/MarkerDiagram.ucls create mode 100644 marker/src/main/java/Thief.java create mode 100644 marker/src/test/java/AppTest.java create mode 100644 marker/src/test/java/GuardTest.java create mode 100644 marker/src/test/java/ThiefTest.java diff --git a/marker/etc/MarkerDiagram.png b/marker/etc/MarkerDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..6ed4f9c567809787d9317733a2e4fe40cbe3284c GIT binary patch literal 6461 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 WzLyy+Lj79=qN54ic(48-^uGXLahsh0 literal 0 HcmV?d00001 diff --git a/marker/etc/MarkerDiagram.ucls b/marker/etc/MarkerDiagram.ucls new file mode 100644 index 000000000..0f8376e40 --- /dev/null +++ b/marker/etc/MarkerDiagram.ucls @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/marker/pom.xml b/marker/pom.xml index 99dca27a3..74969d2eb 100644 --- a/marker/pom.xml +++ b/marker/pom.xml @@ -10,6 +10,21 @@ 4.0.0 marker + + + org.junit.jupiter + junit-jupiter-api + RELEASE + + + junit + junit + + + junit + junit + + \ No newline at end of file diff --git a/marker/src/main/java/App.java b/marker/src/main/java/App.java index ca8c036f7..10ec017df 100644 --- a/marker/src/main/java/App.java +++ b/marker/src/main/java/App.java @@ -1,12 +1,43 @@ /** * Created by Alexis on 28-Apr-17. + * With Marker interface idea is to make empty interface and extend it. + * Basically it is just to identify the special objects from normal objects. + * Like in case of serialization , objects that need to be serialized must implement serializable interface + * (it is empty interface) and down the line writeObject() method must be checking + * if it is a instance of serializable or not. + *

+ * Marker interface vs annotation + * Marker interfaces and marker annotations both have their uses, + * neither of them is obsolete or always better then the other one. + * If you want to define a type that does not have any new methods associated with it, + * a marker interface is the way to go. + * If you want to mark program elements other than classes and interfaces, + * to allow for the possibility of adding more information to the marker in the future, + * or to fit the marker into a framework that already makes heavy use of annotation types, + * then a marker annotation is the correct choice */ public class App { + + /** + * Program entry point + * + * @param args command line args + */ public static void main(String[] args) { + Guard guard = new Guard(); + Thief thief = new Thief(); if (guard instanceof Permission) { guard.enter(); + } else { + System.out.println("You have no permission to enter, please leave this area"); + } + + if (thief instanceof Permission) { + thief.steal(); + } else { + thief.doNothing(); } } } diff --git a/marker/src/main/java/Thief.java b/marker/src/main/java/Thief.java new file mode 100644 index 000000000..33eac5aca --- /dev/null +++ b/marker/src/main/java/Thief.java @@ -0,0 +1,12 @@ +/** + * Created by Alexis on 02-May-17. + */ +public class Thief { + protected static void steal() { + System.out.println("Steal valuable items"); + } + + protected static void doNothing() { + System.out.println("Pretend nothing happened and just leave"); + } +} diff --git a/marker/src/test/java/AppTest.java b/marker/src/test/java/AppTest.java new file mode 100644 index 000000000..615a3c910 --- /dev/null +++ b/marker/src/test/java/AppTest.java @@ -0,0 +1,17 @@ +/** + * Created by Alexis on 01-May-17. + */ + +import org.junit.Test; + +/** + * Application test + */ +public class AppTest { + + @Test + public void test() { + String[] args = {}; + App.main(args); + } +} diff --git a/marker/src/test/java/GuardTest.java b/marker/src/test/java/GuardTest.java new file mode 100644 index 000000000..459447367 --- /dev/null +++ b/marker/src/test/java/GuardTest.java @@ -0,0 +1,16 @@ +import org.junit.Test; + +import static org.hamcrest.CoreMatchers.instanceOf; +import static org.junit.Assert.assertThat; + +/** + * Created by Alexis on 02-May-17. + */ +public class GuardTest { + + @Test + public void testGuard() { + Guard guard = new Guard(); + assertThat(guard, instanceOf(Permission.class)); + } +} diff --git a/marker/src/test/java/ThiefTest.java b/marker/src/test/java/ThiefTest.java new file mode 100644 index 000000000..37409ecb3 --- /dev/null +++ b/marker/src/test/java/ThiefTest.java @@ -0,0 +1,15 @@ +/** + * Created by Alexis on 02-May-17. + */ + +import org.junit.Test; + +import static org.junit.Assert.assertFalse; + +public class ThiefTest { + @Test + public void testGuard() { + Thief thief = new Thief(); + assertFalse(thief instanceof Permission); + } +}