Skip to content

Commit fbb31a0

Browse files
🏗️ refactor(architecture): contexts' events are sealed interfaces and marker interface for Command (#21)
+ organize `common` package into layers
1 parent 1c80150 commit fbb31a0

89 files changed

Lines changed: 196 additions & 191 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/main/java/com/dddheroes/heroesofddd/GameConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.dddheroes.heroesofddd;
22

3-
import com.dddheroes.heroesofddd.shared.GameMetaData;
3+
import com.dddheroes.heroesofddd.shared.application.GameMetaData;
44
import org.axonframework.eventhandling.EventMessage;
55
import org.axonframework.eventhandling.async.SequencingPolicy;
66
import org.springframework.context.annotation.Bean;
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package com.dddheroes.heroesofddd.armies.events;
2+
3+
public sealed interface ArmyEvent permits CreatureAddedToArmy, CreatureRemovedFromArmy {
4+
5+
String armyId();
6+
}

src/main/java/com/dddheroes/heroesofddd/armies/events/CreatureAddedToArmy.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
package com.dddheroes.heroesofddd.armies.events;
22

3-
import com.dddheroes.heroesofddd.armies.write.ArmyEvent;
4-
import com.dddheroes.heroesofddd.shared.Amount;
5-
import com.dddheroes.heroesofddd.shared.ArmyId;
6-
import com.dddheroes.heroesofddd.shared.CreatureId;
3+
import com.dddheroes.heroesofddd.shared.domain.valueobjects.Amount;
4+
import com.dddheroes.heroesofddd.shared.domain.identifiers.ArmyId;
5+
import com.dddheroes.heroesofddd.shared.domain.identifiers.CreatureId;
76

87
public record CreatureAddedToArmy(
98
String armyId,

src/main/java/com/dddheroes/heroesofddd/armies/events/CreatureRemovedFromArmy.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
package com.dddheroes.heroesofddd.armies.events;
22

3-
import com.dddheroes.heroesofddd.armies.write.ArmyEvent;
4-
import com.dddheroes.heroesofddd.shared.Amount;
5-
import com.dddheroes.heroesofddd.shared.ArmyId;
6-
import com.dddheroes.heroesofddd.shared.CreatureId;
3+
import com.dddheroes.heroesofddd.shared.domain.valueobjects.Amount;
4+
import com.dddheroes.heroesofddd.shared.domain.identifiers.ArmyId;
5+
import com.dddheroes.heroesofddd.shared.domain.identifiers.CreatureId;
76

87
public record CreatureRemovedFromArmy(
98
String armyId,

src/main/java/com/dddheroes/heroesofddd/armies/write/Army.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
import com.dddheroes.heroesofddd.armies.events.CreatureRemovedFromArmy;
77
import com.dddheroes.heroesofddd.armies.write.removecreature.CanRemoveOnlyPresentCreatures;
88
import com.dddheroes.heroesofddd.armies.write.removecreature.RemoveCreatureFromArmy;
9-
import com.dddheroes.heroesofddd.shared.Amount;
10-
import com.dddheroes.heroesofddd.shared.ArmyId;
11-
import com.dddheroes.heroesofddd.shared.CreatureId;
9+
import com.dddheroes.heroesofddd.shared.domain.valueobjects.Amount;
10+
import com.dddheroes.heroesofddd.shared.domain.identifiers.ArmyId;
11+
import com.dddheroes.heroesofddd.shared.domain.identifiers.CreatureId;
1212
import org.axonframework.commandhandling.CommandHandler;
1313
import org.axonframework.eventsourcing.EventSourcingHandler;
1414
import org.axonframework.modelling.command.AggregateCreationPolicy;
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
package com.dddheroes.heroesofddd.armies.write;
22

3-
import com.dddheroes.heroesofddd.shared.ArmyId;
3+
import com.dddheroes.heroesofddd.shared.domain.identifiers.ArmyId;
4+
import com.dddheroes.heroesofddd.shared.slices.write.Command;
45

5-
public interface ArmyCommand {
6+
public interface ArmyCommand extends Command {
67

78
ArmyId armyId();
89
}

src/main/java/com/dddheroes/heroesofddd/armies/write/ArmyEvent.java

Lines changed: 0 additions & 6 deletions
This file was deleted.

src/main/java/com/dddheroes/heroesofddd/armies/write/addcreature/AddCreatureToArmy.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
package com.dddheroes.heroesofddd.armies.write.addcreature;
22

3-
import com.dddheroes.heroesofddd.shared.Amount;
4-
import com.dddheroes.heroesofddd.shared.ArmyId;
5-
import com.dddheroes.heroesofddd.shared.CreatureId;
3+
import com.dddheroes.heroesofddd.armies.write.ArmyCommand;
4+
import com.dddheroes.heroesofddd.shared.domain.valueobjects.Amount;
5+
import com.dddheroes.heroesofddd.shared.domain.identifiers.ArmyId;
6+
import com.dddheroes.heroesofddd.shared.domain.identifiers.CreatureId;
67
import org.axonframework.modelling.command.TargetAggregateIdentifier;
78

89
public record AddCreatureToArmy(
910
@TargetAggregateIdentifier
1011
ArmyId armyId,
1112
CreatureId creatureId,
1213
Amount quantity
13-
) {
14+
) implements ArmyCommand {
1415

1516
public AddCreatureToArmy {
1617
if (quantity.raw() <= 0) {

src/main/java/com/dddheroes/heroesofddd/armies/write/addcreature/CanHaveMax7CreatureStacksInArmy.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package com.dddheroes.heroesofddd.armies.write.addcreature;
22

3-
import com.dddheroes.heroesofddd.shared.Amount;
4-
import com.dddheroes.heroesofddd.shared.CreatureId;
5-
import com.dddheroes.heroesofddd.shared.DomainRule;
3+
import com.dddheroes.heroesofddd.shared.domain.valueobjects.Amount;
4+
import com.dddheroes.heroesofddd.shared.domain.identifiers.CreatureId;
5+
import com.dddheroes.heroesofddd.shared.domain.DomainRule;
66

77
import java.util.Map;
88

src/main/java/com/dddheroes/heroesofddd/armies/write/removecreature/CanRemoveOnlyPresentCreatures.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package com.dddheroes.heroesofddd.armies.write.removecreature;
22

3-
import com.dddheroes.heroesofddd.shared.Amount;
4-
import com.dddheroes.heroesofddd.shared.CreatureId;
5-
import com.dddheroes.heroesofddd.shared.DomainRule;
3+
import com.dddheroes.heroesofddd.shared.domain.valueobjects.Amount;
4+
import com.dddheroes.heroesofddd.shared.domain.identifiers.CreatureId;
5+
import com.dddheroes.heroesofddd.shared.domain.DomainRule;
66

77
import java.util.Map;
88

0 commit comments

Comments
 (0)