rename RegattaLog -> LeaderboardLog, provide optional RevokeEvent constructor

This commit is contained in:
Fredrik Teschke committed 2014-11-26 21:59:13 +01:00
1 parent dd583a4b59
commit a4d941fa55
24 files changed
+126 -199

No files matched your search

@@ -11,6 +11,8 @@ Require-Bundle: com.sap.sailing.domain.common;bundle-version="1.0.0",
com.sap.sse
Export-Package: com.sap.sailing.domain.abstractlog,
com.sap.sailing.domain.abstractlog.impl,
com.sap.sailing.domain.abstractlog.leaderboard,
com.sap.sailing.domain.abstractlog.leaderboard.impl,
com.sap.sailing.domain.abstractlog.race,
com.sap.sailing.domain.abstractlog.race.analyzing.impl,
com.sap.sailing.domain.abstractlog.race.impl,
@@ -32,8 +34,6 @@ Export-Package: com.sap.sailing.domain.abstractlog,
com.sap.sailing.domain.abstractlog.race.tracking.analyzing.impl,
com.sap.sailing.domain.abstractlog.race.tracking.events,
com.sap.sailing.domain.abstractlog.race.tracking.impl,
com.sap.sailing.domain.abstractlog.regatta,
com.sap.sailing.domain.abstractlog.regatta.impl,
com.sap.sailing.domain.base,
com.sap.sailing.domain.base.configuration,
com.sap.sailing.domain.base.configuration.impl,
@@ -14,11 +14,11 @@ import com.sap.sailing.domain.tracking.impl.TimedComparator;
*
* If one of the passed objects is not a {@link RaceLogEvent}, sorting is done by {@link Timed#getTimePoint()}.
*/
public class AbstractLogEventComparator implements Comparator<Timed>, Serializable {
public class LogEventComparator implements Comparator<Timed>, Serializable {
private static final long serialVersionUID = -1337219742246147546L;
private Comparator<Timed> timedComparator;
public AbstractLogEventComparator() {
public LogEventComparator() {
this.timedComparator = TimedComparator.INSTANCE;
}
@@ -1,10 +1,13 @@
package com.sap.sailing.domain.abstractlog.impl;
import java.io.Serializable;
import java.util.UUID;
import com.sap.sailing.domain.abstractlog.AbstractLogEvent;
import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor;
import com.sap.sailing.domain.abstractlog.RevokeEvent;
import com.sap.sse.common.TimePoint;
import com.sap.sse.common.impl.MillisecondsTimePoint;
public abstract class RevokeEventImpl<VisitorT> extends AbstractLogEventImpl<VisitorT> implements RevokeEvent<VisitorT> {
private static final long serialVersionUID = -30864810737555657L;
@@ -14,6 +17,11 @@ public abstract class RevokeEventImpl<VisitorT> extends AbstractLogEventImpl<Vis
private final String revokedEventType;
private final String revokedEventShortInfo;
public RevokeEventImpl(AbstractLogEventAuthor author, AbstractLogEvent<?> toRevoke, String reason) {
this(MillisecondsTimePoint.now(), author, MillisecondsTimePoint.now(), UUID.randomUUID(),
toRevoke.getId(), toRevoke.getClass().getName(), toRevoke.getShortInfo(), reason);
}
public RevokeEventImpl(TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint,
Serializable pId, Serializable revokedEventId, String revokedEventType,
String revokedEventShortInfo, String reason) {
@@ -0,0 +1,8 @@
package com.sap.sailing.domain.abstractlog.leaderboard;
import com.sap.sailing.domain.abstractlog.AbstractLog;
import com.sap.sse.common.WithID;
public interface LeaderboardLog extends AbstractLog<LeaderboardLogEvent, LeaderboardLogEventVisitor>, WithID {
}
@@ -0,0 +1,7 @@
package com.sap.sailing.domain.abstractlog.leaderboard;
import com.sap.sailing.domain.abstractlog.AbstractLogEvent;
public interface LeaderboardLogEvent extends AbstractLogEvent<LeaderboardLogEventVisitor> {
}
@@ -0,0 +1,7 @@
package com.sap.sailing.domain.abstractlog.leaderboard;
public interface LeaderboardLogEventVisitor {
void visit(LeaderboardLogRevokeEvent event);
}
@@ -0,0 +1,7 @@
package com.sap.sailing.domain.abstractlog.leaderboard;
import com.sap.sailing.domain.abstractlog.RevokeEvent;
public interface LeaderboardLogRevokeEvent extends RevokeEvent<LeaderboardLogEventVisitor>, LeaderboardLogEvent {
}
@@ -0,0 +1,19 @@
package com.sap.sailing.domain.abstractlog.leaderboard.impl;
import java.io.Serializable;
import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor;
import com.sap.sailing.domain.abstractlog.impl.AbstractLogEventImpl;
import com.sap.sailing.domain.abstractlog.leaderboard.LeaderboardLogEvent;
import com.sap.sailing.domain.abstractlog.leaderboard.LeaderboardLogEventVisitor;
import com.sap.sse.common.TimePoint;
public abstract class LeaderboardLogEventImpl extends AbstractLogEventImpl<LeaderboardLogEventVisitor> implements LeaderboardLogEvent {
private static final long serialVersionUID = -2557594972618769182L;
public LeaderboardLogEventImpl(TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint,
Serializable pId) {
super(createdAt, author, logicalTimePoint, pId);
}
}
@@ -0,0 +1,28 @@
package com.sap.sailing.domain.abstractlog.leaderboard.impl;
import java.io.Serializable;
import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor;
import com.sap.sailing.domain.abstractlog.impl.LogEventComparator;
import com.sap.sailing.domain.abstractlog.impl.AbstractLogImpl;
import com.sap.sailing.domain.abstractlog.leaderboard.LeaderboardLog;
import com.sap.sailing.domain.abstractlog.leaderboard.LeaderboardLogEvent;
import com.sap.sailing.domain.abstractlog.leaderboard.LeaderboardLogEventVisitor;
public class LeaderboardLogImpl extends AbstractLogImpl<LeaderboardLogEvent, LeaderboardLogEventVisitor> implements LeaderboardLog {
private static final long serialVersionUID = 98032278604708475L;
public LeaderboardLogImpl(Serializable identifier) {
super(identifier, new LogEventComparator());
}
public LeaderboardLogImpl(String nameForReadWriteLock, Serializable identifier) {
super(nameForReadWriteLock, identifier, new LogEventComparator());
}
@Override
protected LeaderboardLogEvent createRevokeEvent(AbstractLogEventAuthor author, LeaderboardLogEvent toRevoke, String reason) {
return new LeaderboardLogRevokeEventImpl(author, toRevoke, reason);
}
}
@@ -0,0 +1,29 @@
package com.sap.sailing.domain.abstractlog.leaderboard.impl;
import java.io.Serializable;
import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor;
import com.sap.sailing.domain.abstractlog.impl.RevokeEventImpl;
import com.sap.sailing.domain.abstractlog.leaderboard.LeaderboardLogEvent;
import com.sap.sailing.domain.abstractlog.leaderboard.LeaderboardLogEventVisitor;
import com.sap.sailing.domain.abstractlog.leaderboard.LeaderboardLogRevokeEvent;
import com.sap.sse.common.TimePoint;
public class LeaderboardLogRevokeEventImpl extends RevokeEventImpl<LeaderboardLogEventVisitor> implements LeaderboardLogRevokeEvent {
private static final long serialVersionUID = -3470191515219206588L;
public LeaderboardLogRevokeEventImpl(TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint,
Serializable pId, Serializable revokedEventId, String revokedEventType, String revokedEventShortInfo,
String reason) {
super(createdAt, author, logicalTimePoint, pId, revokedEventId, revokedEventType, revokedEventShortInfo, reason);
}
public LeaderboardLogRevokeEventImpl(AbstractLogEventAuthor author, LeaderboardLogEvent toRevoke, String reason) {
super(author, toRevoke, reason);
}
@Override
public void accept(LeaderboardLogEventVisitor visitor) {
visitor.visit(this);
}
}
@@ -4,7 +4,7 @@ import java.io.Serializable;
import java.util.Comparator;
import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor;
import com.sap.sailing.domain.abstractlog.impl.AbstractLogEventComparator;
import com.sap.sailing.domain.abstractlog.impl.LogEventComparator;
import com.sap.sailing.domain.abstractlog.race.RaceLogEvent;
import com.sap.sailing.domain.base.Timed;
@@ -14,7 +14,7 @@ import com.sap.sailing.domain.base.Timed;
*
* If one of the passed objects is not a {@link RaceLogEvent}, sorting is done by {@link Timed#getTimePoint()}.
*/
public class RaceLogEventComparator extends AbstractLogEventComparator implements Comparator<Timed>, Serializable {
public class RaceLogEventComparator extends LogEventComparator implements Comparator<Timed>, Serializable {
private static final long serialVersionUID = 6146135178558781346L;
protected int compareEvents(RaceLogEvent e1, RaceLogEvent e2) {
@@ -251,8 +251,7 @@ public class RaceLogEventFactoryImpl implements RaceLogEventFactory {
@Override
public RaceLogRevokeEvent createRevokeEvent(AbstractLogEventAuthor author, int passId, RaceLogEvent toRevoke, String reason) {
return new RaceLogRevokeEventImpl(MillisecondsTimePoint.now(), author, MillisecondsTimePoint.now(), UUID.randomUUID(),
passId, toRevoke.getId(), toRevoke.getClass().getName(), toRevoke.getShortInfo(), reason);
return new RaceLogRevokeEventImpl(author, passId, toRevoke, reason);
}
@Override
@@ -6,6 +6,7 @@ import java.util.List;
import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor;
import com.sap.sailing.domain.abstractlog.impl.RevokeEventImpl;
import com.sap.sailing.domain.abstractlog.race.RaceLogEvent;
import com.sap.sailing.domain.abstractlog.race.RaceLogEventVisitor;
import com.sap.sailing.domain.abstractlog.race.RaceLogRevokeEvent;
import com.sap.sailing.domain.base.Competitor;
@@ -14,6 +15,11 @@ import com.sap.sse.common.TimePoint;
public class RaceLogRevokeEventImpl extends RevokeEventImpl<RaceLogEventVisitor> implements RaceLogRevokeEvent {
private final int passId;
public RaceLogRevokeEventImpl(AbstractLogEventAuthor author, int passId, RaceLogEvent toRevoke, String reason) {
super(author, toRevoke, reason);
this.passId = passId;
}
public RaceLogRevokeEventImpl(TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint,
Serializable pId, int passId, Serializable revokedEventId, String revokedEventType, String revokedEventShortInfo,
String reason) {
@@ -1,21 +0,0 @@
package com.sap.sailing.domain.abstractlog.regatta;
import com.sap.sailing.domain.abstractlog.AbstractLog;
import com.sap.sailing.domain.abstractlog.race.RaceLog;
import com.sap.sailing.domain.tracking.Track;
import com.sap.sse.common.WithID;
/**
* Special kind of {@link Track} for recording {@link RegattaLogEvent}s.
*
* <p>
* Use {@link RaceLog#getRawFixes()} to receive all events in a {@link RaceLog}.
* </p>
*
* <p>
* Implementations should use the {@link RegattaLogEventComparator} for sorting its content.
* </p>
*/
public interface RegattaLog extends AbstractLog<RegattaLogEvent, RegattaLogEventVisitor>, WithID {
}
@@ -1,7 +0,0 @@
package com.sap.sailing.domain.abstractlog.regatta;
import com.sap.sailing.domain.abstractlog.AbstractLogEvent;
public interface RegattaLogEvent extends AbstractLogEvent<RegattaLogEventVisitor> {
}
@@ -1,10 +0,0 @@
package com.sap.sailing.domain.abstractlog.regatta;
import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor;
import com.sap.sailing.domain.abstractlog.regatta.impl.RegattaLogEventFactoryImpl;
public interface RegattaLogEventFactory {
RegattaLogEventFactory INSTANCE = new RegattaLogEventFactoryImpl();
RegattaLogRevokeEvent createRevokeEvent(AbstractLogEventAuthor author, RegattaLogEvent toRevoke, String reason);
}
@@ -1,15 +0,0 @@
package com.sap.sailing.domain.abstractlog.regatta;
import java.io.Serializable;
import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor;
import com.sap.sailing.domain.abstractlog.regatta.impl.RegattaLogEventRestoreFactoryImpl;
import com.sap.sse.common.TimePoint;
public interface RegattaLogEventRestoreFactory extends RegattaLogEventFactory {
RegattaLogEventRestoreFactory INSTANCE = new RegattaLogEventRestoreFactoryImpl();
RegattaLogRevokeEvent createRevokeEvent(TimePoint createdAt, AbstractLogEventAuthor author,
TimePoint logicalTimePoint, Serializable pId, Serializable revokedEventId,
String revokedEventType, String revokedEventShortInfo, String reason);
}
@@ -1,7 +0,0 @@
package com.sap.sailing.domain.abstractlog.regatta;
public interface RegattaLogEventVisitor {
void visit(RegattaLogRevokeEvent event);
}
@@ -1,7 +0,0 @@
package com.sap.sailing.domain.abstractlog.regatta;
import com.sap.sailing.domain.abstractlog.RevokeEvent;
public interface RegattaLogRevokeEvent extends RevokeEvent<RegattaLogEventVisitor>, RegattaLogEvent {
}
@@ -1,18 +0,0 @@
package com.sap.sailing.domain.abstractlog.regatta.impl;
import java.util.UUID;
import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor;
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEvent;
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEventFactory;
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogRevokeEvent;
import com.sap.sse.common.impl.MillisecondsTimePoint;
public class RegattaLogEventFactoryImpl implements RegattaLogEventFactory {
@Override
public RegattaLogRevokeEvent createRevokeEvent(AbstractLogEventAuthor author, RegattaLogEvent toRevoke, String reason) {
return new RegattaLogRevokeEventImpl(MillisecondsTimePoint.now(), author, MillisecondsTimePoint.now(),
UUID.randomUUID(), toRevoke.getId(), toRevoke.getClass().getName(), toRevoke.getShortInfo(), reason);
}
}
@@ -1,19 +0,0 @@
package com.sap.sailing.domain.abstractlog.regatta.impl;
import java.io.Serializable;
import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor;
import com.sap.sailing.domain.abstractlog.impl.AbstractLogEventImpl;
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEvent;
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEventVisitor;
import com.sap.sse.common.TimePoint;
public abstract class RegattaLogEventImpl extends AbstractLogEventImpl<RegattaLogEventVisitor> implements RegattaLogEvent {
private static final long serialVersionUID = -2557594972618769182L;
public RegattaLogEventImpl(TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint,
Serializable pId) {
super(createdAt, author, logicalTimePoint, pId);
}
}
@@ -1,16 +0,0 @@
package com.sap.sailing.domain.abstractlog.regatta.impl;
import java.io.Serializable;
import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor;
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEventRestoreFactory;
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogRevokeEvent;
import com.sap.sse.common.TimePoint;
public class RegattaLogEventRestoreFactoryImpl extends RegattaLogEventFactoryImpl implements RegattaLogEventRestoreFactory {
@Override
public RegattaLogRevokeEvent createRevokeEvent(TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint,
Serializable pId, Serializable revokedEventId, String revokedEventType, String revokedEventShortInfo, String reason) {
return new RegattaLogRevokeEventImpl(createdAt, author, logicalTimePoint, pId, revokedEventId, revokedEventType, revokedEventShortInfo, reason);
}
}
@@ -1,47 +0,0 @@
package com.sap.sailing.domain.abstractlog.regatta.impl;
import java.io.Serializable;
import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor;
import com.sap.sailing.domain.abstractlog.impl.AbstractLogEventComparator;
import com.sap.sailing.domain.abstractlog.impl.AbstractLogImpl;
import com.sap.sailing.domain.abstractlog.race.RaceLogEvent;
import com.sap.sailing.domain.abstractlog.race.impl.RaceLogEventComparator;
import com.sap.sailing.domain.abstractlog.regatta.RegattaLog;
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEvent;
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEventFactory;
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEventVisitor;
import com.sap.sailing.domain.tracking.Track;
import com.sap.sailing.domain.tracking.impl.TrackImpl;
/**
* {@link Track} implementation for {@link RaceLogEvent}s.
*
* <p>
* "Fix" validity is decided based on the {@link #getCurrentPassId() current pass}. The validity is not cached.
* </p>
*
* <p>
* {@link TrackImpl#getDummyFix(com.sap.sailing.domain.common.TimePoint)} is not overridden, see
* {@link RaceLogEventComparator} for sorting when interface methods like
* {@link Track#getFirstFixAfter(com.sap.sailing.domain.common.TimePoint)} are used.
* </p>
*
*/
public class RegattaLogImpl extends AbstractLogImpl<RegattaLogEvent, RegattaLogEventVisitor> implements RegattaLog {
private static final long serialVersionUID = 98032278604708475L;
public RegattaLogImpl(Serializable identifier) {
super(identifier, new AbstractLogEventComparator());
}
public RegattaLogImpl(String nameForReadWriteLock, Serializable identifier) {
super(nameForReadWriteLock, identifier, new AbstractLogEventComparator());
}
@Override
protected RegattaLogEvent createRevokeEvent(AbstractLogEventAuthor author, RegattaLogEvent toRevoke, String reason) {
return RegattaLogEventFactory.INSTANCE.createRevokeEvent(author, toRevoke, reason);
}
}
@@ -1,24 +0,0 @@
package com.sap.sailing.domain.abstractlog.regatta.impl;
import java.io.Serializable;
import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor;
import com.sap.sailing.domain.abstractlog.impl.RevokeEventImpl;
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEventVisitor;
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogRevokeEvent;
import com.sap.sse.common.TimePoint;
public class RegattaLogRevokeEventImpl extends RevokeEventImpl<RegattaLogEventVisitor> implements RegattaLogRevokeEvent {
private static final long serialVersionUID = -3470191515219206588L;
public RegattaLogRevokeEventImpl(TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint,
Serializable pId, Serializable revokedEventId, String revokedEventType, String revokedEventShortInfo,
String reason) {
super(createdAt, author, logicalTimePoint, pId, revokedEventId, revokedEventType, revokedEventShortInfo, reason);
}
@Override
public void accept(RegattaLogEventVisitor visitor) {
visitor.visit(this);
}
}