summaryrefslogtreecommitdiff
path: root/qpid/java/client/src/main/java/org/apache/qpid/jms/DestinationStringParser.java
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/java/client/src/main/java/org/apache/qpid/jms/DestinationStringParser.java')
-rw-r--r--qpid/java/client/src/main/java/org/apache/qpid/jms/DestinationStringParser.java18
1 files changed, 11 insertions, 7 deletions
diff --git a/qpid/java/client/src/main/java/org/apache/qpid/jms/DestinationStringParser.java b/qpid/java/client/src/main/java/org/apache/qpid/jms/DestinationStringParser.java
index d9d837a07e..9356a13153 100644
--- a/qpid/java/client/src/main/java/org/apache/qpid/jms/DestinationStringParser.java
+++ b/qpid/java/client/src/main/java/org/apache/qpid/jms/DestinationStringParser.java
@@ -57,15 +57,11 @@ public class DestinationStringParser
public static DestSyntax getSyntaxType(String s)
{
- if ((BURL_STR).equals(s))
+ try
{
- return BURL;
+ return Enum.valueOf(DestSyntax.class, s.toUpperCase());
}
- else if ((ADDR_STR).equals(s))
- {
- return ADDR;
- }
- else
+ catch (IllegalArgumentException e)
{
throw new IllegalArgumentException("Invalid Destination Syntax Type" +
" should be one of {BURL|ADDR}");
@@ -172,6 +168,7 @@ public class DestinationStringParser
node.setDeclareProps(helper.getNodeDeclareArgs());
node.setBindingProps(helper.getNodeBindings());
addr.setNode(node);
+ node.markReadOnly();
Link link = new Link();
link.setName(helper.getLinkName());
@@ -183,6 +180,7 @@ public class DestinationStringParser
link.setBindingProps(helper.getLinkBindings());
link.setSubscribeProps(helper.getLinkSubscribeArgs());
addr.setLink(link);
+ link.markReadOnly();
addr.markReadOnly();
return addr;
@@ -241,7 +239,13 @@ public class DestinationStringParser
node.setAssertPolicy(AddressPolicy.NEVER);
node.setCreatePolicy(AddressPolicy.RECEIVER);
node.setDeletePolicy(AddressPolicy.NEVER);
+ node.markReadOnly();
+ addr.setNode(node);
+ link.markReadOnly();
+ addr.setLink(link);
+
+ addr.markReadOnly();
return addr;
}
}