diff options
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.java | 51 |
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; +} |