KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > wsif > WSIFMessage


1 /*
2  * The Apache Software License, Version 1.1
3  *
4  *
5  * Copyright (c) 2002 The Apache Software Foundation. All rights
6  * reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  *
12  * 1. Redistributions of source code must retain the above copyright
13  * notice, this list of conditions and the following disclaimer.
14  *
15  * 2. Redistributions in binary form must reproduce the above copyright
16  * notice, this list of conditions and the following disclaimer in
17  * the documentation and/or other materials provided with the
18  * distribution.
19  *
20  * 3. The end-user documentation included with the redistribution,
21  * if any, must include the following acknowledgment:
22  * "This product includes software developed by the
23  * Apache Software Foundation (http://www.apache.org/)."
24  * Alternately, this acknowledgment may appear in the software itself,
25  * if and wherever such third-party acknowledgments normally appear.
26  *
27  * 4. The names "WSIF" and "Apache Software Foundation" must
28  * not be used to endorse or promote products derived from this
29  * software without prior written permission. For written
30  * permission, please contact apache@apache.org.
31  *
32  * 5. Products derived from this software may not be called "Apache",
33  * nor may "Apache" appear in their name, without prior written
34  * permission of the Apache Software Foundation.
35  *
36  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
37  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
38  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
39  * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
40  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
41  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
42  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
43  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
44  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
45  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
46  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
47  * SUCH DAMAGE.
48  * ====================================================================
49  *
50  * This software consists of voluntary contributions made by many
51  * individuals on behalf of the Apache Software Foundation and was
52  * originally based on software copyright (c) 2001, 2002, International
53  * Business Machines, Inc., http://www.apache.org. For more
54  * information on the Apache Software Foundation, please see
55  * <http://www.apache.org/>.
56  */

57
58 package org.apache.wsif;
59
60 import java.util.Iterator JavaDoc;
61 import java.util.Map JavaDoc;
62
63 import javax.wsdl.Message;
64
65 /**
66  * A WSIFMessage is a an interface representing a WSDL Message.
67  * <p>
68  * In WSDL, a Message describes the abstract type of the input
69  * or output to an operation. This is the corresponding WSIF
70  * class which represents in memory the actual input or output
71  * of an operation.
72  * <p>
73  * A WSIFMessage is a container for a set of named parts. The
74  * WSIFMessage interface separates the actual representation of
75  * the data from the abstract type defined by WSDL.
76  * <p>
77  * WSIFMessage implementations are free to represent the
78  * actual part data in any way that is convenient to them.
79  * This could be a simple HashMap as in the WSIFDefaultMessage
80  * implementation, or it could be something more complex, such
81  * as a stream or tree representation.
82  * <p>
83  * In addition to the containing parts, a WSIFMessage also has
84  * a message name. This can be used to distinguish between messages.
85  * <p>
86  * WSIFMessages are cloneable and serializable. If the parts set are
87  * not cloneable, the implementation should try to clone them using
88  * serialization. If the parts are not serializable either, then a
89  * CloneNotSupportedException will be thrown if cloning is attempted.
90  * <p>
91  * A WSIFMessage should be not created by directly instantiating
92  * a WSIFMessage, but should be created by calling one of the
93  * {@link WSIFOperation#createInputMessage()}, {@link WSIFOperation#createOutputMessage()},
94  * or {@link WSIFOperation#createFaultMessage()} methods.
95  * <p>
96  * An instance of a WSIFMessage should only be used for the purpose
97  * it was created for, for example, a WSIFMessage created by the
98  * {@link WSIFOperation#createInputMessage(String)} should not be used as an
99  * output message. A WSIFMessage should only be used once, it should
100  * not be reused in any subsequent WSIFOperation requests.
101  *
102  * @author Paul Fremantle
103  * @author Alekander Slominski
104  * @author Matthew J. Duftler
105  * @author Sanjiva Weerawarana
106  * @author Nirmal Mukhi
107  * @author Owen Burroughs <owenb@apache.org>
108  * @author Ant Elder <antelder@apache.org>
109  * @author Jeremy Hughes <hughesj@apache.org>
110  * @author Mark Whitlock <whitlock@apache.org>
111
112  */

113 public interface WSIFMessage extends java.io.Serializable JavaDoc, Cloneable JavaDoc {
114     /**
115      * Get the name of this message.
116      */

117     public String JavaDoc getName();
118
119     /**
120      * Set the name of this message.
121      */

122     public void setName(String JavaDoc name);
123
124     /**
125      * Return list of part names.
126      * <p><b>NOTE:</b> part names are unordered.
127      */

128     public Iterator JavaDoc getPartNames();
129
130     /**
131      * Create an iterator of the parts in this message.
132      * Supercedes void getParts(Map).
133      */

134     public Iterator JavaDoc getParts();
135
136     /**
137      * This message parts will be replaced by sourceParts.
138      * @parameter sourceParts must be Map that has as key Strings with
139      * part names and values must be instances of WSIFPart.
140      */

141     public void setParts(Map JavaDoc sourceParts);
142
143     /**
144      * Get the underlying WSDL model for this message.
145      * @return javax.wsdl.Message
146      */

147     public Message getMessageDefinition();
148     
149     /**
150      * Set the underlying WSDL model for this message.
151      * @param msgDefinition
152      */

153     public void setMessageDefinition(Message msgDef);
154
155     public String JavaDoc getRepresentationStyle();
156     public void setRepresentationStyle(String JavaDoc rStyle);
157     
158     public Object JavaDoc getObjectPart(String JavaDoc name) throws WSIFException;
159     public Object JavaDoc getObjectPart(String JavaDoc name, Class JavaDoc sourceClass)
160         throws WSIFException;
161     public void setObjectPart(String JavaDoc name, Object JavaDoc part) throws WSIFException;
162
163     public char getCharPart(String JavaDoc name) throws WSIFException;
164     public byte getBytePart(String JavaDoc name) throws WSIFException;
165     public short getShortPart(String JavaDoc name) throws WSIFException;
166     public int getIntPart(String JavaDoc name) throws WSIFException;
167     public long getLongPart(String JavaDoc name) throws WSIFException;
168     public float getFloatPart(String JavaDoc name) throws WSIFException;
169     public double getDoublePart(String JavaDoc name) throws WSIFException;
170     public boolean getBooleanPart(String JavaDoc name) throws WSIFException;
171
172     public void setCharPart(String JavaDoc name, char charPart);
173     public void setBytePart(String JavaDoc name, byte bytePart);
174     public void setShortPart(String JavaDoc name, short shortPart);
175     public void setIntPart(String JavaDoc name, int intPart);
176     public void setLongPart(String JavaDoc name, long longPart);
177     public void setFloatPart(String JavaDoc name, float floatPart);
178     public void setDoublePart(String JavaDoc name, double doublePart);
179     public void setBooleanPart(String JavaDoc name, boolean booleanPart);
180
181     public Object JavaDoc clone() throws CloneNotSupportedException JavaDoc;
182 }
183
Popular Tags