diff --git a/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_1.0/.gitignore b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_1.0/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..19d7c603173c0678aa6c06ba55fc4370bbd0b8fb --- /dev/null +++ b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_1.0/.gitignore @@ -0,0 +1,6 @@ +/target/ +/.settings/ +.classpath +.project +dependency-reduced-pom.xml +*.log diff --git a/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_1.0/pom.xml b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_1.0/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..c5044ba7c65fec0cac2225fc3d79d79bf89271c8 --- /dev/null +++ b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_1.0/pom.xml @@ -0,0 +1,75 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <groupId>de.hdm_stuttgart.mi.sd1</groupId> + <artifactId>compass</artifactId> + <version>1.0</version> + <packaging>jar</packaging> + + <name>compass</name> + + <url>https://freedocs.mi.hdm-stuttgart.de/sd1SectToolsOfTheTrade2.html</url> + + <description>Basic Java project.</description> + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + </properties> + + <build> + <plugins> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.7.0</version> + <configuration> + <source>1.8</source> + <target>1.8</target> + </configuration> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <version>3.0.1</version> + <configuration> + <linksource>true</linksource> + <additionalOptions> + <additionalOption>-html5</additionalOption> + </additionalOptions> + </configuration> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + <version>3.1.0</version> + <configuration> + <transformers> + <transformer + implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> + <manifestEntries> + <Main-Class>de.hdm_stuttgart.mi.sd1.direction.Direction</Main-Class> + </manifestEntries> + </transformer> + </transformers> + </configuration> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>shade</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-site-plugin</artifactId> + <version>3.7.1</version> + </plugin> + </plugins> + </build> +</project> diff --git a/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_1.0/src/main/java/de/hdm_stuttgart/mi/sd1/Driver.java b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_1.0/src/main/java/de/hdm_stuttgart/mi/sd1/Driver.java new file mode 100644 index 0000000000000000000000000000000000000000..66896f907a6fdc992422383f50550034f78cbfab --- /dev/null +++ b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_1.0/src/main/java/de/hdm_stuttgart/mi/sd1/Driver.java @@ -0,0 +1,14 @@ +package de.hdm_stuttgart.mi.sd1; + +import de.hdm_stuttgart.mi.sd1.direction.Direction; + +public class Driver { + + public static void main(String[] args) { + + final Direction northWest = Direction.NW; + + System.out.println(northWest); + + } +} diff --git a/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_1.0/src/main/java/de/hdm_stuttgart/mi/sd1/direction/Direction.java b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_1.0/src/main/java/de/hdm_stuttgart/mi/sd1/direction/Direction.java new file mode 100644 index 0000000000000000000000000000000000000000..c8f7fe8864ecab9cf3e3785e9da12a34932ea7e8 --- /dev/null +++ b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_1.0/src/main/java/de/hdm_stuttgart/mi/sd1/direction/Direction.java @@ -0,0 +1,35 @@ +package de.hdm_stuttgart.mi.sd1.direction; + +/** + * Representing eight compass directions. + */ +public enum Direction { + + N( 0, "north"), + NE( 45, "north by east"), + E( 90, "east"), + SE(135, "south by east"), + S( 180, "south"), + SW(225, "south by west"), + W( 270, "west"), + NW(315, "north by west"); + + /** + * A direction specified by angle and informal description. + * + * @param degree A value ranging from 0 (N) to 315 (NW) mimic a compass rose. + * @param fullName The usual informal name i.e. north by west. + */ + Direction(final int degree, final String fullName) { + this.degree = degree; + this.fullName = fullName; + } + + @Override + public String toString() { + return fullName + " (" + degree + "°)"; + } + + public final int degree; + public final String fullName; +} \ No newline at end of file diff --git a/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_2.0/.gitignore b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_2.0/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..19d7c603173c0678aa6c06ba55fc4370bbd0b8fb --- /dev/null +++ b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_2.0/.gitignore @@ -0,0 +1,6 @@ +/target/ +/.settings/ +.classpath +.project +dependency-reduced-pom.xml +*.log diff --git a/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_2.0/pom.xml b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_2.0/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..9a0aaffbe073bc7a48dd0cca66cbc6fc6ef28198 --- /dev/null +++ b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_2.0/pom.xml @@ -0,0 +1,75 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <groupId>de.hdm_stuttgart.mi.sd1</groupId> + <artifactId>compass</artifactId> + <version>2.0</version> + <packaging>jar</packaging> + + <name>compass</name> + + <url>https://freedocs.mi.hdm-stuttgart.de/sd1SectToolsOfTheTrade2.html</url> + + <description>Basic Java project.</description> + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + </properties> + + <build> + <plugins> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.7.0</version> + <configuration> + <source>1.8</source> + <target>1.8</target> + </configuration> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <version>3.0.1</version> + <configuration> + <linksource>true</linksource> + <additionalOptions> + <additionalOption>-html5</additionalOption> + </additionalOptions> + </configuration> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + <version>3.1.0</version> + <configuration> + <transformers> + <transformer + implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> + <manifestEntries> + <Main-Class>de.hdm_stuttgart.mi.sd1.direction.Direction</Main-Class> + </manifestEntries> + </transformer> + </transformers> + </configuration> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>shade</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-site-plugin</artifactId> + <version>3.7.1</version> + </plugin> + </plugins> + </build> +</project> diff --git a/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_2.0/src/main/java/de/hdm_stuttgart/mi/sd1/Driver.java b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_2.0/src/main/java/de/hdm_stuttgart/mi/sd1/Driver.java new file mode 100644 index 0000000000000000000000000000000000000000..7498913b630ebbf674377a1f0beaa530becc3e3a --- /dev/null +++ b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_2.0/src/main/java/de/hdm_stuttgart/mi/sd1/Driver.java @@ -0,0 +1,14 @@ +package de.hdm_stuttgart.mi.sd1; + +import de.hdm_stuttgart.mi.sd1.direction.Direction; + +public class Driver { + + public static void main(String[] args) { + + final Direction southWest = Direction.SW; + + System.out.println("Direction: " + southWest); + System.out.println(" Opposite: " + southWest.opposite()); + } +} diff --git a/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_2.0/src/main/java/de/hdm_stuttgart/mi/sd1/direction/Direction.java b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_2.0/src/main/java/de/hdm_stuttgart/mi/sd1/direction/Direction.java new file mode 100644 index 0000000000000000000000000000000000000000..1a4e70ba6522770e2a8ec2e6a7eb58e31970bc6e --- /dev/null +++ b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_2.0/src/main/java/de/hdm_stuttgart/mi/sd1/direction/Direction.java @@ -0,0 +1,55 @@ +package de.hdm_stuttgart.mi.sd1.direction; + +/** + * Representing eight compass directions. + */ +public enum Direction { + + N( 0, "north"), + NE( 45, "north by east"), + E( 90, "east"), + SE(135, "south by east"), + S( 180, "south"), + SW(225, "south by west"), + W( 270, "west"), + NW(315, "north by west"); + + /** + * A direction specified by angle and informal description. + * + * @param degree A value ranging from 0 (N) to 315 (NW) mimic a compass rose. + * @param fullName The usual informal name i.e. north by west. + */ + Direction(final int degree, final String fullName) { + this.degree = degree; + this.fullName = fullName; + } + + /** + * Turning a given direction i.e. {@link #SE} into its counterpart {@link #NW}. + * + * @return Direction opposite to the current one. + */ + public Direction opposite() { + switch (this) { + case N: return S; + case NE: return SW; + case E: return W; + case SE: return NW; + case S: return N; + case SW: return NE; + case W: return E; + case NW: return SE; + + default: return null; // Unreachable, but our compiler does not know. + } + } + + @Override + public String toString() { + return fullName + " (" + degree + "°)"; + } + + public final int degree; + public final String fullName; +} \ No newline at end of file diff --git a/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_3.0/.gitignore b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_3.0/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..19d7c603173c0678aa6c06ba55fc4370bbd0b8fb --- /dev/null +++ b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_3.0/.gitignore @@ -0,0 +1,6 @@ +/target/ +/.settings/ +.classpath +.project +dependency-reduced-pom.xml +*.log diff --git a/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_3.0/pom.xml b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_3.0/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..68946d0dca8c6a72cff8ce78508e9cb509f80383 --- /dev/null +++ b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_3.0/pom.xml @@ -0,0 +1,75 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <groupId>de.hdm_stuttgart.mi.sd1</groupId> + <artifactId>compass</artifactId> + <version>3.0</version> + <packaging>jar</packaging> + + <name>compass</name> + + <url>https://freedocs.mi.hdm-stuttgart.de/sd1SectToolsOfTheTrade2.html</url> + + <description>Basic Java project.</description> + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + </properties> + + <build> + <plugins> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.7.0</version> + <configuration> + <source>1.8</source> + <target>1.8</target> + </configuration> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <version>3.0.1</version> + <configuration> + <linksource>true</linksource> + <additionalOptions> + <additionalOption>-html5</additionalOption> + </additionalOptions> + </configuration> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + <version>3.1.0</version> + <configuration> + <transformers> + <transformer + implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> + <manifestEntries> + <Main-Class>de.hdm_stuttgart.mi.sd1.direction.Direction</Main-Class> + </manifestEntries> + </transformer> + </transformers> + </configuration> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>shade</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-site-plugin</artifactId> + <version>3.7.1</version> + </plugin> + </plugins> + </build> +</project> diff --git a/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_3.0/src/main/java/de/hdm_stuttgart/mi/sd1/Driver.java b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_3.0/src/main/java/de/hdm_stuttgart/mi/sd1/Driver.java new file mode 100644 index 0000000000000000000000000000000000000000..7498913b630ebbf674377a1f0beaa530becc3e3a --- /dev/null +++ b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_3.0/src/main/java/de/hdm_stuttgart/mi/sd1/Driver.java @@ -0,0 +1,14 @@ +package de.hdm_stuttgart.mi.sd1; + +import de.hdm_stuttgart.mi.sd1.direction.Direction; + +public class Driver { + + public static void main(String[] args) { + + final Direction southWest = Direction.SW; + + System.out.println("Direction: " + southWest); + System.out.println(" Opposite: " + southWest.opposite()); + } +} diff --git a/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_3.0/src/main/java/de/hdm_stuttgart/mi/sd1/direction/Direction.java b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_3.0/src/main/java/de/hdm_stuttgart/mi/sd1/direction/Direction.java new file mode 100644 index 0000000000000000000000000000000000000000..9dff8163d68023bdbfabd69ddfc454a16724217a --- /dev/null +++ b/Doc/Sd1/Ref/ObjectsAndClasses/Enum/Compass_3.0/src/main/java/de/hdm_stuttgart/mi/sd1/direction/Direction.java @@ -0,0 +1,44 @@ +package de.hdm_stuttgart.mi.sd1.direction; + +/** + * Representing eight compass directions. + */ +public enum Direction { + + N( 0, "north"), + NE( 45, "north by east"), + E( 90, "east"), + SE(135, "south by east"), + S( 180, "south"), + SW(225, "south by west"), + W( 270, "west"), + NW(315, "north by west"); + + /** + * A direction specified by angle and informal description. + * + * @param degree A value ranging from 0 (N) to 315 (NW) mimic a compass rose. + * @param fullName The usual informal name i.e. north by west. + */ + Direction(final int degree, final String fullName) { + this.degree = degree; + this.fullName = fullName; + } + + /** + * Turning a given direction i.e. {@link #SE} into its counterpart {@link #NW}. + * + * @return Direction opposite to the current one. + */ + public Direction opposite() { + return values()[ (ordinal() + 4) % 8]; + } + + @Override + public String toString() { + return fullName + " (" + degree + "°)"; + } + + public final int degree; + public final String fullName; +} \ No newline at end of file