// Path: src/main/java/com/cqrs/appengine/core/messaging/EventHandler.java
// @SuppressWarnings("serial")
// public abstract class EventHandler<T extends Event> implements DeferredTask {
// 
//     /**
//      * The event
//      */
//     protected T event;
// 
//     /**
//      * Default constructor
//      * 
//      * @param event
//      */
//     public EventHandler(T event){
//         this.event = event;
//     }
// }
// 
// Path: src/main/java/com/cqrs/appengine/sample/MessageLog.java
// public class MessageLog {
// 
//     private static final String LOG_NAME = "Simple CQRS Service Log";
// 
//     private static final Logger log = Logger.getLogger(LOG_NAME);
// 
//     static {
//         log.setLevel(java.util.logging.Level.FINEST);
//     }
// 
//     /**
//      * Log an informational message
//      * 
//      * @param message
//      */
//     public static void log(String message){
//         log.log(Level.INFO, message);
//     }
// 
//     /**
//      * Log an exception
//      * 
//      * @param e
//      */
//     public static void log(Exception e){
// 
//         if(e == null)
//             return;
// 
//         log.log(Level.SEVERE, e.getClass().getName(), e);
//     }
// }
// 
// Path: src/main/java/com/cqrs/appengine/sample/domain/AttendeeEmailChanged.java
// public class AttendeeEmailChanged implements Event, Serializable {
// 
// 	private static final long serialVersionUID = 1L;
// 
// 	private UUID attendeeId;
// 	private UUID confirmationId;
//     private String email;
// 
//     /**
//      * Default constructor for serialization
//      */
//     public AttendeeEmailChanged(){}
// 
//     /**
//      * Constructor
//      * 
//      * @param attendeeId
//      * @param firstName
//      * @param lastName
//      */
//     public AttendeeEmailChanged(UUID attendeeId, String email){
//         this.attendeeId = attendeeId;
//         this.email = email;
//         this.confirmationId = UUID.randomUUID();
//     }
// 
//     /**
//      * Get the email
//      * @return
//      */
//     public String getEmail(){
//         return  email;
//     }
//     
//     /**
//      * Get the confirmation id to verify the email change
//      * 
//      * @return
//      */
//     public UUID getConfirmationId(){
//     	return confirmationId;
//     }
// 
//     /**
//      * Get the attendee Id
//      * @return
//      */
//     public UUID getAttendeeId(){
//         return attendeeId;
//     }
// }


import com.cqrs.appengine.core.messaging.EventHandler;
import com.cqrs.appengine.sample.MessageLog;
import com.cqrs.appengine.sample.domain.AttendeeEmailChanged;
package com.cqrs.appengine.sample.handlers.events;


public class AttendeeEmailChangedEventHandler extends EventHandler<AttendeeEmailChanged>{

	private static final long serialVersionUID = 1L;

	public AttendeeEmailChangedEventHandler(AttendeeEmailChanged event) {
		super(event);
		// TODO Auto-generated constructor stub
	}

	@Override
    public void run() {

// Path: src/main/java/com/cqrs/appengine/core/messaging/EventHandler.java
// @SuppressWarnings("serial")
// public abstract class EventHandler<T extends Event> implements DeferredTask {
// 
//     /**
//      * The event
//      */
//     protected T event;
// 
//     /**
//      * Default constructor
//      * 
//      * @param event
//      */
//     public EventHandler(T event){
//         this.event = event;
//     }
// }
// 
// Path: src/main/java/com/cqrs/appengine/sample/MessageLog.java
// public class MessageLog {
// 
//     private static final String LOG_NAME = "Simple CQRS Service Log";
// 
//     private static final Logger log = Logger.getLogger(LOG_NAME);
// 
//     static {
//         log.setLevel(java.util.logging.Level.FINEST);
//     }
// 
//     /**
//      * Log an informational message
//      * 
//      * @param message
//      */
//     public static void log(String message){
//         log.log(Level.INFO, message);
//     }
// 
//     /**
//      * Log an exception
//      * 
//      * @param e
//      */
//     public static void log(Exception e){
// 
//         if(e == null)
//             return;
// 
//         log.log(Level.SEVERE, e.getClass().getName(), e);
//     }
// }
// 
// Path: src/main/java/com/cqrs/appengine/sample/domain/AttendeeEmailChanged.java
// public class AttendeeEmailChanged implements Event, Serializable {
// 
// 	private static final long serialVersionUID = 1L;
// 
// 	private UUID attendeeId;
// 	private UUID confirmationId;
//     private String email;
// 
//     /**
//      * Default constructor for serialization
//      */
//     public AttendeeEmailChanged(){}
// 
//     /**
//      * Constructor
//      * 
//      * @param attendeeId
//      * @param firstName
//      * @param lastName
//      */
//     public AttendeeEmailChanged(UUID attendeeId, String email){
//         this.attendeeId = attendeeId;
//         this.email = email;
//         this.confirmationId = UUID.randomUUID();
//     }
// 
//     /**
//      * Get the email
//      * @return
//      */
//     public String getEmail(){
//         return  email;
//     }
//     
//     /**
//      * Get the confirmation id to verify the email change
//      * 
//      * @return
//      */
//     public UUID getConfirmationId(){
//     	return confirmationId;
//     }
// 
//     /**
//      * Get the attendee Id
//      * @return
//      */
//     public UUID getAttendeeId(){
//         return attendeeId;
//     }
// }


// Path: src/main/java/com/cqrs/appengine/sample/handlers/events/AttendeeEmailChangedEventHandler.java
import com.cqrs.appengine.core.messaging.EventHandler;
import com.cqrs.appengine.sample.MessageLog;
import com.cqrs.appengine.sample.domain.AttendeeEmailChanged;

package com.cqrs.appengine.sample.handlers.events;


public class AttendeeEmailChangedEventHandler extends EventHandler<AttendeeEmailChanged>{

	private static final long serialVersionUID = 1L;

	public AttendeeEmailChangedEventHandler(AttendeeEmailChanged event) {
		super(event);
		// TODO Auto-generated constructor stub
	}

	@Override
    public void run() {

        MessageLog.log(String.format("Attendee Id %s requested to change email address to : %s.", event.getAttendeeId().toString(), event.getEmail()));