/* * * 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; } }