View Javadoc

1   //----------------------------------------------------------------------
2   // 
3   // PerfectJPattern: "Design patterns are good but components are better!" 
4   // AntiqueClock.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.behavioral.observer;
22  
23  import java.text.*;
24  import java.util.*;
25  
26  import org.perfectjpattern.core.api.behavioral.observer.*;
27  import org.slf4j.*;
28  
29  /**
30   * Antique Clock is introduced as example use-case where you want to target 
31   * as Observer a third-party library for which there is no access to its 
32   * source code and therefore it can't be modified to implement 
33   * {@link IObserver} i.e. not possible to abstract couple it to 
34   * PerfectJPattern's  
35   *
36   * @author <a href="mailto:bravegag@hotmail.com">Giovanni Azua</a>
37   * @version $Revision: 1.0 $Date: Jun 16, 2008 10:36:05 PM $
38   */
39  public final
40  class AntiqueClock
41  {
42      //------------------------------------------------------------------------
43      // public
44      //------------------------------------------------------------------------
45      public static void 
46      displayTime(Date aDate)
47      {
48          SimpleDateFormat myFormat = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
49          
50          theLogger.debug("Antique clock works too! " + myFormat.format(aDate));
51      }
52  
53      //------------------------------------------------------------------------
54      // protected
55      //------------------------------------------------------------------------
56      protected static void
57      setLogger(Logger aLogger)
58      {
59          theLogger = aLogger;
60      }    
61      
62      //------------------------------------------------------------------------
63      // private
64      //------------------------------------------------------------------------
65      private 
66      AntiqueClock()
67      {
68          // empty
69      }
70      
71      //------------------------------------------------------------------------
72      // members
73      //------------------------------------------------------------------------
74      /**
75       * Provides logging facilities for this class 
76       */
77      private static Logger theLogger = LoggerFactory.getLogger(AntiqueClock.
78          class);
79  }