Clover Coverage Report - perfectjpattern(Aggregated)
Coverage timestamp: Sat Feb 28 2009 14:35:07 CET
0   77   0   -
0   14   -   0
0     -  
1    
 
  IAdapter       Line # 44 0 - 0 0 - -1.0
 
No Tests
 
1    //----------------------------------------------------------------------
2    //
3    // PerfectJPattern: "Design patterns are good but components are better!"
4    // IAdapter.java Copyright (c) 2009 Giovanni Azua Garcia
5    // bravegag@hotmail.com
6    //
7    // This program is free software; you can redistribute it and/or
8    // modify it under the terms of the GNU General Public License
9    // as published by the Free Software Foundation; either version 3
10    // of the License, or (at your option) any later version.
11    //
12    // This program is distributed in the hope that it will be useful,
13    // but WITHOUT ANY WARRANTY; without even the implied warranty of
14    // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15    // GNU General Public License for more details.
16    //
17    // You should have received a copy of the GNU General Public License
18    // along with this program; if not, see <http://www.gnu.org/licenses/>.
19    //
20    //----------------------------------------------------------------------
21    package org.perfectjpattern.core.api.structural.adapter;
22   
23    import org.perfectjpattern.core.api.structural.ISurrogate;
24   
25    /**
26    * <b>Adapter Design Pattern</b>: Convert the interface of a class into another
27    * interface clients expect. Adapter lets classes work together that couldn't
28    * otherwise because of incompatible interfaces.
29    * <br/><br/>
30    *
31    * <b>Responsibility</b> Abstract definition of the "Adapter":
32    * <br/>
33    * <ul>
34    * <li>adapts the interface Adaptee to the Target interface.</li>
35    * </ul>
36    *
37    * @param <T> <code>Target</code> element type
38    * @param <A> <code>Adaptee</code> element type
39    *
40    * @author <a href="mailto:bravegag@hotmail.com">Giovanni Azua</a>
41    * @version $Revision: 1.0 $Date: Jan 28, 2009 12:51:08 PM $
42    */
43    public
 
44    interface IAdapter<T, A>
45    extends ISurrogate<T>
46    {
47    //------------------------------------------------------------------------
48    // public
49    //------------------------------------------------------------------------
50    /**
51    * Returns the <code>Target</code> instance
52    *
53    * @return <code>Target</code> instance
54    */
55    public T
56    getTarget();
57   
58    //------------------------------------------------------------------------
59    /**
60    * Returns the <code>Adaptee</code> instance
61    *
62    * @return <code>Adaptee</code> instance
63    */
64    public A
65    getAdaptee();
66   
67    //------------------------------------------------------------------------
68    /**
69    * Sets the adapting strategy e.g. exact, name, user-defined
70    *
71    * @param anAdaptingStrategy {@link IAdaptingStrategy} instance to assign
72    * @throws IllegalArgumentException 'anAdaptingStrategy' must not be null
73    */
74    public void
75    setAdaptingStrategy(IAdaptingStrategy anAdaptingStrategy)
76    throws IllegalArgumentException;
77    }