diff options
author | Robert Godfrey <rgodfrey@apache.org> | 2014-09-02 16:05:58 +0000 |
---|---|---|
committer | Robert Godfrey <rgodfrey@apache.org> | 2014-09-02 16:05:58 +0000 |
commit | e514c426b243b53ede124fbe0ee8077be26f3b5b (patch) | |
tree | 9f3eae5fa1267134ba82ae3695546861944214b3 /qpid/java/client/src/main/java/org/apache/qpid/client/AMQDestination.java | |
parent | 2eeebe50b2d779b019c7a28a47ac8c5604636a2b (diff) | |
download | qpid-python-e514c426b243b53ede124fbe0ee8077be26f3b5b.tar.gz |
Merged QPID-6052 (r1621143 r1621148 r1621149 r1621150 r1621826) to 0.30 from trunk
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/0.30@1622044 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/client/src/main/java/org/apache/qpid/client/AMQDestination.java')
-rw-r--r-- | qpid/java/client/src/main/java/org/apache/qpid/client/AMQDestination.java | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/qpid/java/client/src/main/java/org/apache/qpid/client/AMQDestination.java b/qpid/java/client/src/main/java/org/apache/qpid/client/AMQDestination.java index 2714caf2a1..a71555480f 100644 --- a/qpid/java/client/src/main/java/org/apache/qpid/client/AMQDestination.java +++ b/qpid/java/client/src/main/java/org/apache/qpid/client/AMQDestination.java @@ -211,7 +211,7 @@ public abstract class AMQDestination implements Destination, Referenceable, Exte { } - protected AMQDestination(Address address) throws Exception + protected AMQDestination(Address address) { this._address = address; getInfoFromAddress(); @@ -749,7 +749,8 @@ public abstract class AMQDestination implements Destination, Referenceable, Exte } } - public static Destination createDestination(String str) throws Exception + public static Destination createDestination(String str, final boolean useNodeTypeForDestinationType) + throws URISyntaxException { DestSyntax syntax = getDestType(str); str = stripSyntaxPrefix(str); @@ -760,7 +761,24 @@ public abstract class AMQDestination implements Destination, Referenceable, Exte else { Address address = createAddressFromString(str); - return new AMQAnyDestination(address); + if(useNodeTypeForDestinationType) + { + AddressHelper helper = new AddressHelper(address); + switch(helper.getNodeType()) + { + case AMQDestination.QUEUE_TYPE: + return new AMQQueue(address); + case AMQDestination.TOPIC_TYPE: + return new AMQTopic(address); + default: + return new AMQAnyDestination(address); + } + + } + else + { + return new AMQAnyDestination(address); + } } } @@ -912,7 +930,7 @@ public abstract class AMQDestination implements Destination, Referenceable, Exte return Address.parse(str); } - private void getInfoFromAddress() throws Exception + private void getInfoFromAddress() { _name = _address.getName(); _subject = _address.getSubject(); |