1 /*
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3 *
4 * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
5 *
6 * The contents of this file are subject to the terms of either the GNU
7 * General Public License Version 2 only ("GPL") or the Common Development
8 * and Distribution License("CDDL") (collectively, the "License"). You
9 * may not use this file except in compliance with the License. You can obtain
10 * a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
11 * or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
12 * language governing permissions and limitations under the License.
13 *
14 * When distributing the software, include this License Header Notice in each
15 * file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
16 * Sun designates this particular file as subject to the "Classpath" exception
17 * as provided by Sun in the GPL Version 2 section of the License file that
18 * accompanied this code. If applicable, add the following below the License
19 * Header, with the fields enclosed by brackets [] replaced by your own
20 * identifying information: "Portions Copyrighted [year]
21 * [name of copyright owner]"
22 *
23 * Contributor(s):
24 *
25 * If you wish your version of this file to be governed by only the CDDL or
26 * only the GPL Version 2, indicate your decision by adding "[Contributor]
27 * elects to include this software in this distribution under the [CDDL or GPL
28 * Version 2] license." If you don't indicate a single choice of license, a
29 * recipient has the option to distribute your version of this file under
30 * either the CDDL, the GPL Version 2 or to extend the choice of license to
31 * its licensees as provided above. However, if you add GPL Version 2 code
32 * and therefore, elected the GPL Version 2 license, then the option applies
33 * only if the new code is made subject to such option by the copyright
34 * holder.
35 */
36
37 package javax.resource.cci;
38
39 import javax.resource.ResourceException;
40
41 /** The interface <code>javax.resource.cci.ResourceAdapterMetaData</code>
42 * provides information about capabilities of a resource adapter
43 * implementation. Note that this interface does not provide information
44 * about an EIS instance that is connected through the resource adapter.
45 *
46 * <p>A CCI client uses a <code>ConnectionFactory.getMetaData</code> to
47 * get metadata information about the resource adapter. The
48 * <code>getMetaData</code> method does not require that an active
49 * connection to an EIS instance should have been established.
50 *
51 * <p>The ResourceAdapterMetaData can be extended to provide more
52 * information specific to a resource adapter implementation.
53 *
54 * @author Rahul Sharma
55 * @version 0.8
56 * @since 0.8
57 * @see javax.resource.cci.ConnectionFactory
58 **/
59
60 public interface ResourceAdapterMetaData {
61
62 /** Gets the version of the resource adapter.
63 *
64 * @return String representing version of the resource adapter
65 **/
66 public
67 String getAdapterVersion();
68
69 /** Gets the name of the vendor that has provided the resource
70 * adapter.
71 *
72 * @return String representing name of the vendor that has
73 * provided the resource adapter
74 **/
75 public
76 String getAdapterVendorName();
77
78 /** Gets a tool displayable name of the resource adapter.
79 *
80 * @return String representing the name of the resource adapter
81 **/
82 public
83 String getAdapterName();
84
85 /** Gets a tool displayable short desription of the resource
86 * adapter.
87 *
88 * @return String describing the resource adapter
89 **/
90 public
91 String getAdapterShortDescription();
92
93 /** Returns a string representation of the version of the
94 * connector architecture specification that is supported by
95 * the resource adapter.
96 *
97 * @return String representing the supported version of
98 * the connector architecture
99 **/
100 public
101 String getSpecVersion();
102
103 /** Returns an array of fully-qualified names of InteractionSpec
104 * types supported by the CCI implementation for this resource
105 * adapter. Note that the fully-qualified class name is for
106 * the implementation class of an InteractionSpec. This method
107 * may be used by tools vendor to find information on the
108 * supported InteractionSpec types. The method should return
109 * an array of length 0 if the CCI implementation does not
110 * define specific InteractionSpec types.
111 *
112 * @return Array of fully-qualified class names of
113 * InteractionSpec classes supported by this
114 * resource adapter's CCI implementation
115 * @see javax.resource.cci.InteractionSpec
116 **/
117 public
118 String[] getInteractionSpecsSupported();
119
120
121 /** Returns true if the implementation class for the Interaction
122 * interface implements public boolean execute(InteractionSpec
123 * ispec, Record input, Record output) method; otherwise the
124 * method returns false.
125 *
126 * @return boolean depending on method support
127 * @see javax.resource.cci.Interaction
128 **/
129 public
130 boolean supportsExecuteWithInputAndOutputRecord();
131
132
133 /** Returns true if the implementation class for the Interaction
134 * interface implements public Record execute(InteractionSpec
135 * ispec, Record input) method; otherwise the method returns
136 * false.
137 *
138 * @return boolean depending on method support
139 * @see javax.resource.cci.Interaction
140 **/
141 public
142 boolean supportsExecuteWithInputRecordOnly();
143
144
145 /** Returns true if the resource adapter implements the LocalTransaction
146 * interface and supports local transaction demarcation on the
147 * underlying EIS instance through the LocalTransaction interface.
148 *
149 * @return true if resource adapter supports resource manager
150 * local transaction demarcation through LocalTransaction
151 * interface; false otherwise
152 * @see javax.resource.cci.LocalTransaction
153 **/
154 public
155 boolean supportsLocalTransactionDemarcation();
156 }