@@ -0,0 +1,1952 @@
+/*%0A * Copyright (c) 2013 Red Rainbow IT Solutions GmbH, Germany%0A *%0A * Permission is hereby granted, free of charge, to any person obtaining a copy of%0A * this software and associated documentation files (the %22Software%22), to deal in%0A * the Software without restriction, including without limitation the rights to%0A * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of%0A * the Software, and to permit persons to whom the Software is furnished to do so,%0A * subject to the following conditions:%0A * %0A * The above copyright notice and this permission notice shall be included in all%0A * copies or substantial portions of the Software.%0A * %0A * THE SOFTWARE IS PROVIDED %22AS IS%22, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR%0A * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS%0A * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR%0A * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER%0A * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN%0A * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.%0A */%0A%0Apackage org.jeecqrs.common.event;%0A%0Aimport java.util.Date;%0Aimport org.jeecqrs.common.AbstractIdentifiable;%0Aimport org.jeecqrs.common.Identity;%0A%0A/**%0A * Layer supertype for events.%0A */%0Apublic abstract class AbstractEvent%3CT%3E extends AbstractIdentifiable%3CT%3E%0A%09implements Event%3CT%3E %7B%0A%0A    private Identity id;%0A    private Date occurredOn;%0A%0A    public AbstractEvent() %7B%0A        this.occurredOn = new Date();%0A%09this.id = new DefaultEventId();%0A    %7D%0A%0A    public AbstractEvent(Identity eventId) %7B%0A        this.id = eventId;%0A    %7D%0A%0A    public AbstractEvent(Identity eventId, Date occurredOn) %7B%0A        this.id = eventId;%0A        this.occurredOn = occurredOn;%0A    %7D%0A%0A    @Override%0A    public Identity id() %7B%0A        return id;%0A    %7D%0A%0A    @Override%0A    public Date occurredOn() %7B%0A        return this.occurredOn;%0A    %7D%0A    %0A%7D%0A

Add AbstractEvent