View Javadoc

1   //----------------------------------------------------------------------
2   // 
3   // PerfectJPattern: "Design patterns are good but components are better!" 
4   // AnalogClock.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.slf4j.*;
27  
28  /**
29   * Concrete implementation of {@link IClock} of type Analog
30   *
31   * @author <a href="mailto:bravegag@hotmail.com">Giovanni Azua</a>
32   * @version $Revision: 1.0 $Date: May 25, 2008 3:40:41 PM $
33   */
34  public 
35  class AnalogClock
36  implements IClock
37  {
38      //------------------------------------------------------------------------
39      // public
40      //------------------------------------------------------------------------
41      /**
42       * {@inheritDoc}
43       */
44      public void 
45      draw()
46      {
47          SimpleDateFormat myFormat = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
48          
49          theLogger.debug("Printing Analog timestamp: " + myFormat.format(
50              theDate));
51      }
52  
53      //------------------------------------------------------------------------
54      /**
55       * {@inheritDoc}
56       */
57      public void 
58      update(Date aDate)
59      {
60          theLogger.debug("Analog clock received an update event");
61          
62          theDate = (Date) aDate.clone();
63          
64          draw();
65      }
66      
67      //------------------------------------------------------------------------
68      // protected
69      //------------------------------------------------------------------------
70      protected static void
71      setLogger(Logger aLogger)
72      {
73          theLogger = aLogger;
74      }    
75      
76      //------------------------------------------------------------------------
77      // members
78      //------------------------------------------------------------------------
79      
80      private Date theDate;
81      
82      /**
83       * Provides logging facilities for this class 
84       */
85      private static Logger theLogger = LoggerFactory.getLogger(AnalogClock.
86          class);
87  }