diff --git a/README.md b/README.md index 10c9621..7244edf 100644 --- a/README.md +++ b/README.md @@ -147,7 +147,7 @@ Then, you simply add the dependency as follows: ca.nexapp core - 0.1.4 + 0.2.0 ``` diff --git a/pom.xml b/pom.xml index b9be3c3..80e1707 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ ca.nexapp core - 0.1.4 + 0.2.0 jar Nexapp Core diff --git a/src/main/java/ca/nexapp/core/referables/ReferenceNumberGenerator.java b/src/main/java/ca/nexapp/core/referables/ReferenceNumberGenerator.java index b2792cf..2306e0e 100644 --- a/src/main/java/ca/nexapp/core/referables/ReferenceNumberGenerator.java +++ b/src/main/java/ca/nexapp/core/referables/ReferenceNumberGenerator.java @@ -1,7 +1,10 @@ package ca.nexapp.core.referables; +import java.lang.reflect.InvocationTargetException; + public interface ReferenceNumberGenerator { - ReferenceNumber generate(); + ReferenceNumber generate() throws InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException; + T generate(Class klass) throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException; } diff --git a/src/main/java/ca/nexapp/core/referables/UUIDReferenceNumberGenerator.java b/src/main/java/ca/nexapp/core/referables/UUIDReferenceNumberGenerator.java index 3d030d3..4cec72f 100644 --- a/src/main/java/ca/nexapp/core/referables/UUIDReferenceNumberGenerator.java +++ b/src/main/java/ca/nexapp/core/referables/UUIDReferenceNumberGenerator.java @@ -1,11 +1,19 @@ package ca.nexapp.core.referables; +import java.lang.reflect.Constructor; +import java.lang.reflect.InvocationTargetException; import java.util.UUID; public class UUIDReferenceNumberGenerator implements ReferenceNumberGenerator { @Override - public ReferenceNumber generate() { - return new ReferenceNumber(UUID.randomUUID().toString()); + public ReferenceNumber generate() throws InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException { + return generate(ReferenceNumber.class); + } + + @Override + public T generate(Class klass) throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException { + Constructor constructor = klass.getConstructor(String.class); + return constructor.newInstance(UUID.randomUUID().toString()); } }