Adds the ProviderException NotAnInvokableException
Indicates that an invoked resource is not invokable
Mapping to http error code currently missing
Change-Id: Ib9037491590993e5caf68e2312ce79e96c009927
Signed-off-by: Maximilian Conradi <maximilian.conradi@iese.fraunhofer.de>
diff --git a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/exception/provider/NotAnInvokableException.java b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/exception/provider/NotAnInvokableException.java
new file mode 100644
index 0000000..58f54d5
--- /dev/null
+++ b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/exception/provider/NotAnInvokableException.java
@@ -0,0 +1,29 @@
+package org.eclipse.basyx.vab.exception.provider;
+
+/**
+ * Used to indicate by a ModelProvider,
+ * that invoke was called with a path to a non invokable resource.
+ *
+ * @author conradi
+ *
+ */
+public class NotAnInvokableException extends ProviderException {
+
+
+ /**
+ * Version information for serialized instances
+ */
+ private static final long serialVersionUID = 1L;
+
+
+ /**
+ * Constructor
+ */
+ public NotAnInvokableException(String msg) {
+ super(msg);
+ }
+
+ public NotAnInvokableException(Exception e) {
+ super(e);
+ }
+}
\ No newline at end of file
diff --git a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/modelprovider/generic/VABModelProvider.java b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/modelprovider/generic/VABModelProvider.java
index 22e3dd2..0040bff 100644
--- a/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/modelprovider/generic/VABModelProvider.java
+++ b/sdks/java/basys.sdk/src/main/java/org/eclipse/basyx/vab/modelprovider/generic/VABModelProvider.java
@@ -3,7 +3,7 @@
import java.util.function.Function;
import org.eclipse.basyx.vab.exception.provider.MalformedRequestException;
-import org.eclipse.basyx.vab.exception.provider.ProviderException;
+import org.eclipse.basyx.vab.exception.provider.NotAnInvokableException;
import org.eclipse.basyx.vab.exception.provider.ResourceAlreadyExistsException;
import org.eclipse.basyx.vab.exception.provider.ResourceNotFoundException;
import org.eclipse.basyx.vab.modelprovider.VABPathTools;
@@ -159,7 +159,7 @@
Function<Object[], Object> function = (Function<Object[], Object>) childElement;
return function.apply(parameters);
} else {
- throw new ProviderException("Element \"" + path + "\" is not a function.");
+ throw new NotAnInvokableException("Element \"" + path + "\" is not a function.");
}
}