001 /*
002 * Copyright 2001-2004 The Apache Software Foundation.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016 package javax.xml.rpc;
017
018 import java.util.Iterator;
019
020 /**
021 * The interface <code>javax.xml.rpc.Stub</code> is the common base interface
022 * for the stub classes. All generated stub classes are required to
023 * implement the <code>javax.xml.rpc.Stub</code> interface. An instance
024 * of a stub class represents a client side proxy or stub instance for
025 * the target service endpoint.
026 *
027 * <p>The <code>javax.xml.rpc.Stub</code> interface provides an
028 * extensible property mechanism for the dynamic configuration of
029 * a stub instance.
030 *
031 * @version 1.0
032 */
033 public interface Stub {
034
035 // Constants for the standard properties
036
037 /**
038 * Standard property: User name for authentication.
039 * <p>Type: java.lang.String
040 */
041 public static final String USERNAME_PROPERTY = Call.USERNAME_PROPERTY;
042
043 /**
044 * Standard property: Password for authentication.
045 * <p>Type: java.lang.String
046 */
047 public static final String PASSWORD_PROPERTY = Call.PASSWORD_PROPERTY;
048
049 /**
050 * Standard property: Target service endpoint address. The
051 * URI scheme for the endpoint address specification must
052 * correspond to the protocol/transport binding for this
053 * stub class.
054 * <p>Type: java.lang.String
055 */
056 public static final String ENDPOINT_ADDRESS_PROPERTY =
057 "javax.xml.rpc.service.endpoint.address";
058
059 /**
060 * Standard property: This boolean property is used by a service
061 * client to indicate whether or not it wants to participate in
062 * a session with a service endpoint. If this property is set to
063 * true, the service client indicates that it wants the session
064 * to be maintained. If set to false, the session is not maintained.
065 * The default value for this property is false.
066 * <p>Type: java.lang.Boolean
067 */
068 public static final String SESSION_MAINTAIN_PROPERTY =
069 Call.SESSION_MAINTAIN_PROPERTY;
070
071 /**
072 * Sets the name and value of a configuration property
073 * for this Stub instance. If the Stub instances contains
074 * a value of the same property, the old value is replaced.
075 * <p>Note that the <code>_setProperty</code> method may not
076 * perform validity check on a configured property value. An
077 * example is the standard property for the target service
078 * endpoint address that is not checked for validity in the
079 * <code>_setProperty</code> method.
080 * In this case, stub configuration errors are detected at
081 * the remote method invocation.
082 *
083 * @param name Name of the configuration property
084 * @param value Value of the property
085 * @throws JAXRPCException <ul>
086 * <li>If an optional standard property name is
087 * specified, however this Stub implementation
088 * class does not support the configuration of
089 * this property.
090 * <li>If an invalid or unsupported property name is
091 * specified or if a value of mismatched property
092 * type is passed.
093 * <li>If there is any error in the configuration of
094 * a valid property.
095 * </ul>
096 */
097 public void _setProperty(String name, Object value);
098
099 /**
100 * Gets the value of a specific configuration property.
101 *
102 * @param name Name of the property whose value is to be
103 * retrieved
104 * @return Value of the configuration property
105 * @throws JAXRPCException if an invalid or
106 * unsupported property name is passed.
107 */
108 public Object _getProperty(String name);
109
110 /**
111 * Returns an <code>Iterator</code> view of the names of the properties
112 * that can be configured on this stub instance.
113 *
114 * @return Iterator for the property names of the type
115 * <code>java.lang.String</code>
116 */
117 public Iterator _getPropertyNames();
118 } // interface Stub
119