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());
}
}