diff --git a/pmd-ruleset.xml b/pmd-ruleset.xml new file mode 100644 index 0000000..dd50b44 --- /dev/null +++ b/pmd-ruleset.xml @@ -0,0 +1,31 @@ + + + + + + Custom ruleset for Java + + + + + + + + + + + + + + + + + + + + + + diff --git a/pom.xml b/pom.xml index 6c3758b..33b778f 100644 --- a/pom.xml +++ b/pom.xml @@ -38,6 +38,7 @@ 2.11.0 4.7.1.0 4.7.1 + 23.0.0 UTF-8 @@ -61,6 +62,14 @@ ${junit.version} test + + + + org.jetbrains + annotations + ${jetbrains.annotations.version} + compile + @@ -227,6 +236,18 @@ ${spotbugs.version} + + + prepare-package + + + spotbugs + + + + + + @@ -265,8 +286,13 @@ + prepare-package - check + + pmd + + + diff --git a/src/main/java/de/kneitzel/Greeting.java b/src/main/java/de/kneitzel/Greeting.java new file mode 100644 index 0000000..7dd49b7 --- /dev/null +++ b/src/main/java/de/kneitzel/Greeting.java @@ -0,0 +1,57 @@ +package de.kneitzel; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * Simple Greeting class for some demonstration. + */ +public class Greeting { + + /** + * Default name that should be greeted if no name is given. + */ + public static final String DEFAULT_NAME = "Welt"; + + /** + * Name that should be greeted + *

+ * Cannot be null. + *

+ */ + @NotNull + private final String name; + + /** + * Gets the name that should be greeted. + * @return Name that should be greeted. + */ + public @NotNull String getName() { + return name; + } + + /** + * Creates a new Instance of Greeting which greets the "World". + */ + public Greeting() { + this(null); + } + + /** + * Creates a new instance of Greeting to greet the given name. + * @param name Name that should be greeted by Greeting. + */ + public Greeting(@Nullable final String name) { + this.name = name == null ? DEFAULT_NAME : name; + } + + /** + * String representation of this instance. + * @return String representation of "Hello name!" + */ + @NotNull + @Override + public String toString() { + return "Hallo " + name + "!"; + } +} diff --git a/src/main/java/de/kneitzel/JavaApp.java b/src/main/java/de/kneitzel/JavaApp.java index 0e658fc..3f2f2c5 100644 --- a/src/main/java/de/kneitzel/JavaApp.java +++ b/src/main/java/de/kneitzel/JavaApp.java @@ -1,7 +1,23 @@ package de.kneitzel; -public class JavaApp { - public static void main(String[] args) { - System.out.println("Hello World!"); +import org.jetbrains.annotations.NotNull; + +/** + * Starting point of the JavaApp + */ +public final class JavaApp { + + /** + * Provate Constructor - we never create an instance! + */ + private JavaApp() {} + + /** + * Entry point of the application. + * @param args Commandline parameters. + */ + public static void main(@NotNull final String[] args) { + final Greeting greeting = new Greeting(null); + System.out.println(greeting); } } diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java index d5574a0..c593806 100644 --- a/src/main/java/module-info.java +++ b/src/main/java/module-info.java @@ -1,2 +1,4 @@ module AppModule { + // Jetbrains Dependency: @NotNull / @Nullable + requires org.jetbrains.annotations; } \ No newline at end of file