1 /*
2 * Copyright (c) 2008 Rodrigo Ruiz
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 package org.apache.axis.message.addressing;
17
18 import javax.xml.namespace.QName;
19
20 /**
21 * Container for several fields that change from one version to another of the
22 * WS-Addressing specification.
23 * <p>
24 * This interface aims to encapsulate all those aspects that vary from
25 * one specification to the others.
26 *
27 * @author Rodrigo Ruiz
28 * @version $Revision: 14 $
29 */
30 public interface AddressingVersion {
31 /**
32 * Gets the URI to use for anonymous target declarations.
33 *
34 * @return The anonymous target URI
35 */
36 String getAnonymousRoleURI();
37
38 /**
39 * Gets the fault wsa:Action URI that is appropriate for this WSA version.
40 *
41 * @return The fault Action URI
42 */
43 String getFaultActionURI();
44
45 /**
46 * Gets the namespace associated to this version.
47 *
48 * @return The namespace for SOAP addressing elements
49 */
50 String getNamespace();
51
52 /**
53 * Returns the response/reply relationship QName that is appropriate for this
54 * WSA version..
55 *
56 * @return The response/reply QName
57 */
58 QName getResponseRelationshipType();
59
60 /**
61 * Gets if the namespace is supported by the W3C specifications.
62 *
63 * @return <tt>true</tt> if this version is compliant with
64 * the W3C specifications; <tt>false</tt> otherwise
65 */
66 boolean isW3C();
67
68 /**
69 * Gets if this addressing version supports Reference Parameters.
70 *
71 * @return <tt>true</tt> if reference parameters are supported;
72 * <tt>false</tt> otherwise
73 */
74 boolean supportsParameters();
75
76 /**
77 * Gets if this addressing version supports Reference Properties.
78 *
79 * @return <tt>true</tt> if reference properties are supported;
80 * <tt>false</tt> otherwise
81 */
82 boolean supportsProperties();
83
84 /**
85 * Gets if this addressing version supports MetaData.
86 *
87 * @return <tt>true</tt> if MetaData is supported;
88 * <tt>false</tt> otherwise
89 */
90 boolean supportsMetadata();
91 }