View Javadoc

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  import org.apache.axis.message.addressing.util.AddressingUtils;
21  import org.apache.axis.types.URI;
22  import org.apache.axis.types.URI.MalformedURIException;
23  
24  /**
25   * Java content class for Relationship complex type.
26   * <p>
27   * The following schema fragment specifies the expected content contained within
28   * this java content object. (defined at
29   * http://schemas.xmlsoap.org/ws/2004/08/addressing line 84)
30   * <p>
31   *
32   * <pre>
33   * &lt;complexType name=&quot;Relationship&quot;&gt;
34   *   &lt;simpleContent&gt;
35   *     &lt;extension base=&quot;&lt;http://www.w3.org/2001/XMLSchema&gt;anyURI&quot;&gt;
36   *       &lt;attribute name=&quot;RelationshipType&quot;
37   *                  type=&quot;{http://www.w3.org/2001/XMLSchema}QName&quot; /&gt;
38   *     &lt;/extension&gt;
39   *   &lt;/simpleContent&gt;
40   * &lt;/complexType&gt;
41   * </pre>
42   *
43   * @author Davanum Srinivas
44   * @version $Revision: 14 $
45   */
46  public class Relationship {
47    /**
48     * Field type.
49     */
50    private URI uri;
51  
52    /**
53     * Field type.
54     */
55    private QName type;
56  
57    /** Relationship type as per W3C CR version. */
58    private String typeIRI;
59  
60    /**
61     * Constructor Relationship.
62     */
63    public Relationship() {
64    }
65  
66    /**
67     * Constructor Relationship.
68     *
69     * @param uri Relationship type
70     * @throws URI.MalformedURIException If the URI is not valid
71     */
72    public Relationship(String uri) throws MalformedURIException {
73      this.uri = new URI(uri);
74    }
75  
76    /**
77     * Constructor Relationship.
78     *
79     * @param uri Relationship URI
80     * @param type Relationship type
81     * @throws URI.MalformedURIException If any of the URIs is invalid
82     */
83    public Relationship(String uri, String type) throws MalformedURIException {
84      this.typeIRI = type;
85      this.uri = new URI(uri);
86    }
87  
88    /**
89     * Constructor Relationship.
90     *
91     * @param uri Relationship URI
92     * @param type Relationship type
93     */
94    public Relationship(URI uri, QName type) {
95      this.uri = uri;
96      this.type = (type == null) ? AddressingUtils.getResponseRelationshipType() : type;
97    }
98  
99    /**
100    * Method getType.
101    *
102    * @return The relationship type
103    */
104   public QName getType() {
105     return this.type;
106   }
107 
108   /**
109    * Gets the type IRI.
110    *
111    * @return The type IRI
112    */
113   public String getTypeIRI() {
114     return this.typeIRI;
115   }
116 
117   /**
118    * Method getURI.
119    *
120    * @return The URI
121    */
122   public URI getURI() {
123     return this.uri;
124   }
125 
126   /**
127    * Method set_type.
128    *
129    * @param type The relationship type
130    */
131   public void setType(QName type) {
132     this.type = type;
133   }
134 
135   /**
136    * Sets the type IRI.
137    *
138    * @param typeIRI The type IRI
139    */
140   public void setTypeIRI(String typeIRI) {
141     this.typeIRI = typeIRI;
142   }
143 
144   /**
145    * Method setURI.
146    *
147    * @param uri The URI
148    */
149   public void setURI(URI uri) {
150     this.uri = uri;
151   }
152 }