*** empty log message ***
[IRC.git] / Robust / Transactions / dstm2src / factory / Adapter.java
1 /*
2  * Adapter.java
3  *
4  * Copyright 2006 Sun Microsystems, Inc., 4150 Network Circle, Santa
5  * Clara, California 95054, U.S.A.  All rights reserved.  
6  * 
7  * Sun Microsystems, Inc. has intellectual property rights relating to
8  * technology embodied in the product that is described in this
9  * document.  In particular, and without limitation, these
10  * intellectual property rights may include one or more of the
11  * U.S. patents listed at http://www.sun.com/patents and one or more
12  * additional patents or pending patent applications in the U.S. and
13  * in other countries.
14  * 
15  * U.S. Government Rights - Commercial software.
16  * Government users are subject to the Sun Microsystems, Inc. standard
17  * license agreement and applicable provisions of the FAR and its
18  * supplements.  Use is subject to license terms.  Sun, Sun
19  * Microsystems, the Sun logo and Java are trademarks or registered
20  * trademarks of Sun Microsystems, Inc. in the U.S. and other
21  * countries.  
22  * 
23  * This product is covered and controlled by U.S. Export Control laws
24  * and may be subject to the export or import laws in other countries.
25  * Nuclear, missile, chemical biological weapons or nuclear maritime
26  * end uses or end users, whether direct or indirect, are strictly
27  * prohibited.  Export or reexport to countries subject to
28  * U.S. embargo or to entities identified on U.S. export exclusion
29  * lists, including, but not limited to, the denied persons and
30  * specially designated nationals lists is strictly prohibited.
31  */
32
33 package dstm2.factory;
34
35 /**
36  * User-defined factories use this adapter interface.
37  * @author Maurice Herlihy
38  */
39 public interface Adapter<T> {
40   /**
41    * A Setter<V> object represents <code>void setMumble(V value)</code> method.
42    **/
43   public interface Setter<V> {
44     /**
45      * Call setter.
46      */
47     public void call(V x);
48   }
49   
50   /**
51    * A Getter<V> object represents <code>V getMumble()</code> method.
52    **/
53   public interface Getter<V> {
54     /**
55      * Call getter.
56      */
57     public V call();
58   }
59   
60   /**
61    * creates a Setter<V>
62    * @param methodName Name of setter, e.g., "setValue"
63    * @param _class field class, e.g., <code>int.TYPE</code>
64    * @return <code>Setter<V></code> object to call.
65    */
66   public <V> Setter<V> makeSetter(String methodName, Class<V> _class);
67   
68   /**
69    * creates a Getter<V>
70    * @param methodName Name of getter, e.g., "getValue"
71    * @param _class field class, e.g., <code>int.TYPE</code>
72    * @return <code>Getter<V></code> object to call.
73    */
74   public <V> Getter<V> makeGetter(String methodName, Class<V> _class);
75
76   
77 }