diff options
Diffstat (limited to 'java/client/src/main/java/org/apache/qpid/messaging/address/Link.java')
-rw-r--r-- | java/client/src/main/java/org/apache/qpid/messaging/address/Link.java | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/java/client/src/main/java/org/apache/qpid/messaging/address/Link.java b/java/client/src/main/java/org/apache/qpid/messaging/address/Link.java new file mode 100644 index 0000000000..55eb86372a --- /dev/null +++ b/java/client/src/main/java/org/apache/qpid/messaging/address/Link.java @@ -0,0 +1,112 @@ +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ +package org.apache.qpid.messaging.address; + +import static org.apache.qpid.messaging.address.Link.Reliability.UNSPECIFIED; + +public class Link +{ + public enum FilterType { SQL92, XQUERY, SUBJECT } + + public enum Reliability + { + UNRELIABLE, AT_MOST_ONCE, AT_LEAST_ONCE, EXACTLY_ONCE, UNSPECIFIED; + + public static Reliability getReliability(String reliability) throws AddressException + { + if (reliability == null) + { + return UNSPECIFIED; + } + else if (reliability.equalsIgnoreCase("unreliable")) + { + return UNRELIABLE; + } + else if (reliability.equalsIgnoreCase("at-least-once")) + { + return AT_LEAST_ONCE; + } + else + { + throw new AddressException("The reliability mode '" + + reliability + "' is not yet supported"); + } + } + } + + protected String name; + protected String filter; + protected FilterType filterType = FilterType.SUBJECT; + protected boolean noLocal; + protected boolean durable; + protected int consumerCapacity = 0; + protected int producerCapacity = 0; + protected Reliability reliability = UNSPECIFIED; + + public Link(AddressHelper helper) throws AddressException + { + name = helper.getLinkName(); + durable = helper.isLinkDurable(); + reliability = Reliability.getReliability(helper.getLinkReliability()); + consumerCapacity = helper.getLinkConsumerCapacity(); + producerCapacity = helper.getLinkProducerCapacity(); + } + + public Reliability getReliability() + { + return reliability; + } + + public boolean isDurable() + { + return durable; + } + + public String getFilter() + { + return filter; + } + + public FilterType getFilterType() + { + return filterType; + } + + public boolean isNoLocal() + { + return noLocal; + } + + public int getConsumerCapacity() + { + return consumerCapacity; + } + + public int getProducerCapacity() + { + return producerCapacity; + } + + public String getName() + { + return name; + } +} |