summaryrefslogtreecommitdiff
path: root/src/main/java/org/mockito/internal/creation/instance/InstantiatorProvider2Adapter.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/mockito/internal/creation/instance/InstantiatorProvider2Adapter.java')
-rw-r--r--src/main/java/org/mockito/internal/creation/instance/InstantiatorProvider2Adapter.java34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/main/java/org/mockito/internal/creation/instance/InstantiatorProvider2Adapter.java b/src/main/java/org/mockito/internal/creation/instance/InstantiatorProvider2Adapter.java
new file mode 100644
index 0000000..a1ab5d5
--- /dev/null
+++ b/src/main/java/org/mockito/internal/creation/instance/InstantiatorProvider2Adapter.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2018 Mockito contributors
+ * This program is made available under the terms of the MIT License.
+ */
+package org.mockito.internal.creation.instance;
+
+import org.mockito.mock.MockCreationSettings;
+import org.mockito.plugins.InstantiatorProvider;
+import org.mockito.plugins.InstantiatorProvider2;
+
+/**
+ * Adapts new public API {@link InstantiatorProvider2} onto old, deprecated API {@link InstantiatorProvider}
+ */
+public class InstantiatorProvider2Adapter implements InstantiatorProvider {
+ private final InstantiatorProvider2 provider;
+
+ public InstantiatorProvider2Adapter(InstantiatorProvider2 provider) {
+ this.provider = provider;
+ }
+
+ @Override
+ public Instantiator getInstantiator(final MockCreationSettings<?> settings) {
+ return new Instantiator() {
+ @Override
+ public <T> T newInstance(Class<T> cls) throws InstantiationException {
+ try {
+ return provider.getInstantiator(settings).newInstance(cls);
+ } catch (org.mockito.creation.instance.InstantiationException e) {
+ throw new InstantiationException(e.getMessage(), e.getCause());
+ }
+ }
+ };
+ }
+}