| /* |
| * 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 flex.messaging.config; |
| |
| import java.util.ArrayList; |
| import java.util.List; |
| |
| /** |
| * Destinations are configured for a particular <code>Service</code>. A |
| * destination's configuration includes an <code>id</code> attribute to provide |
| * a public name for clients to use when sending messages. |
| * <p> |
| * The configuration also specifies which channels are valid to contact the |
| * destination, as well as which adapter a service must use to process |
| * client messages for this destination and any security constraints that need |
| * to be enforced. |
| * </p> |
| */ |
| public class DestinationSettings extends PropertiesSettings { |
| /** |
| * |
| */ |
| public static final String SERVER_ELEMENT = "server"; |
| |
| private final String id; |
| private String sourceFile; |
| private List channelSettings; |
| private AdapterSettings adapterSettings; |
| private SecurityConstraint constraint; |
| |
| /** |
| * Used to construct a new set of properties to describe a destination. |
| * Note that an identity is required in order for clients to refer to a |
| * destination. |
| * |
| * @param id A string representing the unique identity of this destination. |
| */ |
| public DestinationSettings(String id) { |
| this.id = id; |
| channelSettings = new ArrayList(); |
| } |
| |
| /** |
| * Gets the unique identity used by clients to target a destination. |
| * |
| * @return String the destination's id. |
| */ |
| public String getId() { |
| return id; |
| } |
| |
| /** |
| * Internal use only. |
| */ |
| String getSourceFile() { |
| return sourceFile; |
| } |
| |
| /** |
| * Internal use only. |
| */ |
| void setSourceFile(String sourceFile) { |
| this.sourceFile = sourceFile; |
| } |
| |
| /* |
| * CHANNEL SETTINGS |
| */ |
| |
| /** |
| * Adds a channel to the set of channels that should be used to contact |
| * this destination. The order in which channels are added is significant |
| * (clients use this order to locate an available channel and failover to |
| * the next in the list on failure). |
| * |
| * @param c the <code>ChannelSettings</code> to add to the set of |
| * channel definitions for this destination. |
| */ |
| public void addChannelSettings(ChannelSettings c) { |
| if (c != null) { |
| channelSettings.add(c); |
| } |
| } |
| |
| /** |
| * Overrides the set of channels that can be used to contact this |
| * destination. |
| * |
| * @param settings A List of <code>ChannelSettings</code>. |
| */ |
| public void setChannelSettings(List settings) { |
| channelSettings = settings; |
| } |
| |
| /** |
| * Gets the set of channels that can be used to contact this destination. |
| * |
| * @return a <code>java.util.List</code> of <code>ChannelSetting</code>s |
| * describing the channels that can be used to contact this destination. |
| */ |
| public List getChannelSettings() { |
| return channelSettings; |
| } |
| |
| |
| /* |
| * SECURITY |
| */ |
| |
| /** |
| * Gets the <code>SecurityConstraint</code> that will be applied to this |
| * destination, or <code>null</code> if no constraint has been registered. |
| * |
| * @return the <code>SecurityConstraint</code> for this destination. |
| */ |
| public SecurityConstraint getConstraint() { |
| return constraint; |
| } |
| |
| /** |
| * Sets the security constraint to be applied to this destination. Security |
| * constraints restrict which clients can contact this destination. Use |
| * <code>null</code> to remove an existing constraint. |
| * |
| * @param sc the <code>SecurityConstraint</code> to apply to this |
| * destination. |
| */ |
| public void setConstraint(SecurityConstraint sc) { |
| constraint = sc; |
| } |
| |
| /* |
| * SERVICE ADAPTER |
| */ |
| |
| /** |
| * Sets the service adapter to be used when the managing service is |
| * processing messages bound for this destination. |
| * |
| * @param a The <code>AdapterSettings</code> that describe the adapter |
| * to use for this destination. |
| */ |
| public void setAdapterSettings(AdapterSettings a) { |
| adapterSettings = a; |
| } |
| |
| /** |
| * Gets the adapter to be used for this destination. |
| * |
| * @return <code>AdapterSettings</code> for this destinations adapter. |
| * A <code>null</code> value implies the the default service adapter should |
| * be used. |
| */ |
| public AdapterSettings getAdapterSettings() { |
| return adapterSettings; |
| } |
| |
| |
| } |