blob: 55eb86372a823847366a81872588bc05a6b3ffe5 [file] [log] [blame]
/*
*
* 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;
}
}