diff options
Diffstat (limited to 'graphs/java/throwback')
10 files changed, 241 insertions, 0 deletions
diff --git a/graphs/java/throwback/.gitignore b/graphs/java/throwback/.gitignore new file mode 100644 index 0000000..5ff6309 --- /dev/null +++ b/graphs/java/throwback/.gitignore @@ -0,0 +1,38 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store
\ No newline at end of file diff --git a/graphs/java/throwback/pom.xml b/graphs/java/throwback/pom.xml new file mode 100644 index 0000000..ca306b0 --- /dev/null +++ b/graphs/java/throwback/pom.xml @@ -0,0 +1,133 @@ +<?xml version="1.0" encoding="UTF-8"?> +<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>fr.epita.assistants</groupId> + <artifactId>throwback</artifactId> + <version>1.0</version> + + <properties> + <versions.java>21</versions.java> + <versions.junit>5.9.1</versions.junit> + <versions.maven-compiler-plugin>3.13.0</versions.maven-compiler-plugin> + <versions.maven-surefire-plugin>3.5.0</versions.maven-surefire-plugin> + <versions.maven-jar-plugin>3.1.1</versions.maven-jar-plugin> + <versions.maven-install-plugin>3.1.0</versions.maven-install-plugin> + + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + + <surefire.reportsDirectory>${project.build.directory}/surefire-reports</surefire.reportsDirectory> + </properties> + + <dependencies> + <dependency> + <groupId>org.junit.jupiter</groupId> + <artifactId>junit-jupiter</artifactId> + <version>${versions.junit}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.surefire</groupId> + <artifactId>surefire-junit-platform</artifactId> + <version>${versions.maven-surefire-plugin}</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-compat</artifactId> + <version>3.9.8</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-plugin-api</artifactId> + <version>3.9.8</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-project</artifactId> + <version>2.2.1</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-core</artifactId> + <version>3.8.1</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-monitor</artifactId> + <version>2.2.1</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-utils</artifactId> + <version>3.0.24</version> + </dependency> + <dependency> + <groupId>org.apache.maven.shared</groupId> + <artifactId>maven-filtering</artifactId> + <version>3.3.2</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-interpolation</artifactId> + <version>1.13</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-profile</artifactId> + <version>2.2.1</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-artifact-manager</artifactId> + <version>2.2.1</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-plugin-registry</artifactId> + <version>2.2.1</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-repository-metadata</artifactId> + <version>2.2.1</version> + </dependency> + <dependency> + <groupId>classworlds</groupId> + <artifactId>classworlds</artifactId> + <version>1.1</version> + </dependency> + <dependency> + <groupId>org.junit.platform</groupId> + <artifactId>junit-platform-commons</artifactId> + <version>1.9.3</version> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>${versions.maven-compiler-plugin}</version> + <configuration> + <source>${versions.java}</source> + <target>${versions.java}</target> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-install-plugin</artifactId> + <version>${versions.maven-install-plugin}</version> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>${versions.maven-surefire-plugin}</version> + <configuration> + <reportsDirectory>${surefire.reportsDirectory}</reportsDirectory> + </configuration> + </plugin> + </plugins> + </build> +</project> diff --git a/graphs/java/throwback/src/main/java/fr/epita/assistants/throwback/IntegerException.java b/graphs/java/throwback/src/main/java/fr/epita/assistants/throwback/IntegerException.java new file mode 100644 index 0000000..7bc7337 --- /dev/null +++ b/graphs/java/throwback/src/main/java/fr/epita/assistants/throwback/IntegerException.java @@ -0,0 +1,7 @@ +package fr.epita.assistants.throwback; + +public abstract class IntegerException extends Exception{ + public IntegerException(String message) { + super("IntegerException: " + message); + } +} diff --git a/graphs/java/throwback/src/main/java/fr/epita/assistants/throwback/LongStringException.java b/graphs/java/throwback/src/main/java/fr/epita/assistants/throwback/LongStringException.java new file mode 100644 index 0000000..687c654 --- /dev/null +++ b/graphs/java/throwback/src/main/java/fr/epita/assistants/throwback/LongStringException.java @@ -0,0 +1,7 @@ +package fr.epita.assistants.throwback; + +public class LongStringException extends StringException { + public LongStringException(String message) { + super("LongStringException: " + message + " (length: " + message.length() + ")"); + } +} diff --git a/graphs/java/throwback/src/main/java/fr/epita/assistants/throwback/NegativeIntegerException.java b/graphs/java/throwback/src/main/java/fr/epita/assistants/throwback/NegativeIntegerException.java new file mode 100644 index 0000000..ce84fc1 --- /dev/null +++ b/graphs/java/throwback/src/main/java/fr/epita/assistants/throwback/NegativeIntegerException.java @@ -0,0 +1,7 @@ +package fr.epita.assistants.throwback; + +public class NegativeIntegerException extends IntegerException { + public NegativeIntegerException(String message) { + super("NegativeIntegerException: " + message); + } +} diff --git a/graphs/java/throwback/src/main/java/fr/epita/assistants/throwback/Pitcher.java b/graphs/java/throwback/src/main/java/fr/epita/assistants/throwback/Pitcher.java new file mode 100644 index 0000000..7093b08 --- /dev/null +++ b/graphs/java/throwback/src/main/java/fr/epita/assistants/throwback/Pitcher.java @@ -0,0 +1,21 @@ +package fr.epita.assistants.throwback; + +import java.util.regex.Pattern; + +public class Pitcher { + public static void throwException(String message) throws + LongStringException, ShortStringException, + PositiveIntegerException, NegativeIntegerException, + UnknownException { + if (Pattern.matches("[0-9]+", message)) + throw new PositiveIntegerException(message); + else if (Pattern.matches("-[0-9]+", message)) + throw new NegativeIntegerException(message); + else if (Pattern.matches("[a-zA-Z ,.']{100,}", message)) + throw new LongStringException(message); + else if (Pattern.matches("[a-zA-Z ,.']{1,100}", message)) + throw new ShortStringException(message); + else + throw new UnknownException(message); + } +} diff --git a/graphs/java/throwback/src/main/java/fr/epita/assistants/throwback/PositiveIntegerException.java b/graphs/java/throwback/src/main/java/fr/epita/assistants/throwback/PositiveIntegerException.java new file mode 100644 index 0000000..124fcf1 --- /dev/null +++ b/graphs/java/throwback/src/main/java/fr/epita/assistants/throwback/PositiveIntegerException.java @@ -0,0 +1,7 @@ +package fr.epita.assistants.throwback; + +public class PositiveIntegerException extends IntegerException{ + public PositiveIntegerException(String message) { + super("PositiveIntegerException: " + message); + } +} diff --git a/graphs/java/throwback/src/main/java/fr/epita/assistants/throwback/ShortStringException.java b/graphs/java/throwback/src/main/java/fr/epita/assistants/throwback/ShortStringException.java new file mode 100644 index 0000000..28e5eda --- /dev/null +++ b/graphs/java/throwback/src/main/java/fr/epita/assistants/throwback/ShortStringException.java @@ -0,0 +1,7 @@ +package fr.epita.assistants.throwback; + +public class ShortStringException extends StringException { + public ShortStringException(String message) { + super("ShortStringException: " + message + " (length: " + message.length() + ")"); + } +} diff --git a/graphs/java/throwback/src/main/java/fr/epita/assistants/throwback/StringException.java b/graphs/java/throwback/src/main/java/fr/epita/assistants/throwback/StringException.java new file mode 100644 index 0000000..03f10aa --- /dev/null +++ b/graphs/java/throwback/src/main/java/fr/epita/assistants/throwback/StringException.java @@ -0,0 +1,7 @@ +package fr.epita.assistants.throwback; + +public abstract class StringException extends Exception { + public StringException(String message) { + super("StringException: " + message); + } +} diff --git a/graphs/java/throwback/src/main/java/fr/epita/assistants/throwback/UnknownException.java b/graphs/java/throwback/src/main/java/fr/epita/assistants/throwback/UnknownException.java new file mode 100644 index 0000000..005ecee --- /dev/null +++ b/graphs/java/throwback/src/main/java/fr/epita/assistants/throwback/UnknownException.java @@ -0,0 +1,7 @@ +package fr.epita.assistants.throwback; + +public class UnknownException extends Exception{ + public UnknownException(String message) { + super("UnknownException: " + message); + } +} |
