summaryrefslogtreecommitdiff
path: root/java/newclient/src/main/java/org/apache/qpid/nclient/impl/AbstractResource.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/newclient/src/main/java/org/apache/qpid/nclient/impl/AbstractResource.java')
-rw-r--r--java/newclient/src/main/java/org/apache/qpid/nclient/impl/AbstractResource.java51
1 files changed, 51 insertions, 0 deletions
diff --git a/java/newclient/src/main/java/org/apache/qpid/nclient/impl/AbstractResource.java b/java/newclient/src/main/java/org/apache/qpid/nclient/impl/AbstractResource.java
new file mode 100644
index 0000000000..d202bab843
--- /dev/null
+++ b/java/newclient/src/main/java/org/apache/qpid/nclient/impl/AbstractResource.java
@@ -0,0 +1,51 @@
+package org.apache.qpid.nclient.impl;
+
+import org.apache.qpid.nclient.api.QpidException;
+import org.apache.qpid.nclient.core.AMQPException;
+
+/**
+ * This abstracts the error handling for open
+ * and close methods for a resource. This class
+ * eliminates the duplication of error handling
+ * code
+ */
+public abstract class AbstractResource
+{
+ private String _resourceName;
+
+ public AbstractResource(String resourceName)
+ {
+ _resourceName = resourceName;
+ }
+
+ public void open() throws QpidException
+ {
+ try
+ {
+ openResource();
+
+ }
+ catch(AMQPException e)
+ {
+ throw new QpidException("Error creating " + _resourceName + " due to " + e.getMessage(),e);
+ }
+ }
+
+ public void close() throws QpidException
+ {
+ try
+ {
+ closeResource();
+
+ }
+ catch(Exception e)
+ {
+ throw new QpidException("Error destroying " + _resourceName + " due to " + e.getMessage(),e);
+ }
+
+ }
+
+ protected abstract void openResource() throws AMQPException;
+
+ protected abstract void closeResource() throws AMQPException;
+}