Skip to content

Commit a568656

Browse files
authored
improvement: fix issue 1968 and correct visitor pattern code and test. (iluwatar#2023)
* fix issue 1968 and correct visitor pattern code and test. * fix README code as well.
1 parent b33d002 commit a568656

File tree

12 files changed

+81
-33
lines changed

12 files changed

+81
-33
lines changed

visitor/README.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ public class Commander extends Unit {
7272

7373
@Override
7474
public void accept(UnitVisitor visitor) {
75-
visitor.visitCommander(this);
75+
visitor.visit(this);
7676
super.accept(visitor);
7777
}
7878

@@ -90,7 +90,7 @@ public class Sergeant extends Unit {
9090

9191
@Override
9292
public void accept(UnitVisitor visitor) {
93-
visitor.visitSergeant(this);
93+
visitor.visit(this);
9494
super.accept(visitor);
9595
}
9696

@@ -108,7 +108,7 @@ public class Soldier extends Unit {
108108

109109
@Override
110110
public void accept(UnitVisitor visitor) {
111-
visitor.visitSoldier(this);
111+
visitor.visit(this);
112112
super.accept(visitor);
113113
}
114114

@@ -126,17 +126,17 @@ Here are then some concrete visitors.
126126
public class CommanderVisitor implements UnitVisitor {
127127

128128
@Override
129-
public void visitSoldier(Soldier soldier) {
129+
public void visit(Soldier soldier) {
130130
// Do nothing
131131
}
132132

133133
@Override
134-
public void visitSergeant(Sergeant sergeant) {
134+
public void visit(Sergeant sergeant) {
135135
// Do nothing
136136
}
137137

138138
@Override
139-
public void visitCommander(Commander commander) {
139+
public void visit(Commander commander) {
140140
LOGGER.info("Good to see you {}", commander);
141141
}
142142
}
@@ -145,17 +145,17 @@ public class CommanderVisitor implements UnitVisitor {
145145
public class SergeantVisitor implements UnitVisitor {
146146

147147
@Override
148-
public void visitSoldier(Soldier soldier) {
148+
public void visit(Soldier soldier) {
149149
// Do nothing
150150
}
151151

152152
@Override
153-
public void visitSergeant(Sergeant sergeant) {
153+
public void visit(Sergeant sergeant) {
154154
LOGGER.info("Hello {}", sergeant);
155155
}
156156

157157
@Override
158-
public void visitCommander(Commander commander) {
158+
public void visit(Commander commander) {
159159
// Do nothing
160160
}
161161
}
@@ -164,17 +164,17 @@ public class SergeantVisitor implements UnitVisitor {
164164
public class SoldierVisitor implements UnitVisitor {
165165

166166
@Override
167-
public void visitSoldier(Soldier soldier) {
167+
public void visit(Soldier soldier) {
168168
LOGGER.info("Greetings {}", soldier);
169169
}
170170

171171
@Override
172-
public void visitSergeant(Sergeant sergeant) {
172+
public void visit(Sergeant sergeant) {
173173
// Do nothing
174174
}
175175

176176
@Override
177-
public void visitCommander(Commander commander) {
177+
public void visit(Commander commander) {
178178
// Do nothing
179179
}
180180
}

visitor/src/main/java/com/iluwatar/visitor/Commander.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,13 @@ public Commander(Unit... children) {
3333
super(children);
3434
}
3535

36+
/**
37+
* Accept a Visitor.
38+
* @param visitor UnitVisitor to be accepted
39+
*/
3640
@Override
3741
public void accept(UnitVisitor visitor) {
38-
visitor.visitCommander(this);
42+
visitor.visit(this);
3943
super.accept(visitor);
4044
}
4145

visitor/src/main/java/com/iluwatar/visitor/CommanderVisitor.java

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,18 +32,30 @@
3232
@Slf4j
3333
public class CommanderVisitor implements UnitVisitor {
3434

35+
/**
36+
* Soldier Visitor method.
37+
* @param soldier Soldier to be visited
38+
*/
3539
@Override
36-
public void visitSoldier(Soldier soldier) {
40+
public void visit(Soldier soldier) {
3741
// Do nothing
3842
}
3943

44+
/**
45+
* Sergeant Visitor method.
46+
* @param sergeant Sergeant to be visited
47+
*/
4048
@Override
41-
public void visitSergeant(Sergeant sergeant) {
49+
public void visit(Sergeant sergeant) {
4250
// Do nothing
4351
}
4452

53+
/**
54+
* Commander Visitor method.
55+
* @param commander Commander to be visited
56+
*/
4557
@Override
46-
public void visitCommander(Commander commander) {
58+
public void visit(Commander commander) {
4759
LOGGER.info("Good to see you {}", commander);
4860
}
4961
}

visitor/src/main/java/com/iluwatar/visitor/Sergeant.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,13 @@ public Sergeant(Unit... children) {
3333
super(children);
3434
}
3535

36+
/**
37+
* Accept a Visitor.
38+
* @param visitor UnitVisitor to be accepted
39+
*/
3640
@Override
3741
public void accept(UnitVisitor visitor) {
38-
visitor.visitSergeant(this);
42+
visitor.visit(this);
3943
super.accept(visitor);
4044
}
4145

visitor/src/main/java/com/iluwatar/visitor/SergeantVisitor.java

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,18 +32,30 @@
3232
@Slf4j
3333
public class SergeantVisitor implements UnitVisitor {
3434

35+
/**
36+
* Soldier Visitor method.
37+
* @param soldier Soldier to be visited
38+
*/
3539
@Override
36-
public void visitSoldier(Soldier soldier) {
40+
public void visit(Soldier soldier) {
3741
// Do nothing
3842
}
3943

44+
/**
45+
* Sergeant Visitor method.
46+
* @param sergeant Sergeant to be visited
47+
*/
4048
@Override
41-
public void visitSergeant(Sergeant sergeant) {
49+
public void visit(Sergeant sergeant) {
4250
LOGGER.info("Hello {}", sergeant);
4351
}
4452

53+
/**
54+
* Commander Visitor method.
55+
* @param commander Commander to be visited
56+
*/
4557
@Override
46-
public void visitCommander(Commander commander) {
58+
public void visit(Commander commander) {
4759
// Do nothing
4860
}
4961
}

visitor/src/main/java/com/iluwatar/visitor/Soldier.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,13 @@ public Soldier(Unit... children) {
3333
super(children);
3434
}
3535

36+
/**
37+
* Accept a Visitor.
38+
* @param visitor UnitVisitor to be accepted
39+
*/
3640
@Override
3741
public void accept(UnitVisitor visitor) {
38-
visitor.visitSoldier(this);
42+
visitor.visit(this);
3943
super.accept(visitor);
4044
}
4145

visitor/src/main/java/com/iluwatar/visitor/SoldierVisitor.java

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,18 +32,30 @@
3232
@Slf4j
3333
public class SoldierVisitor implements UnitVisitor {
3434

35+
/**
36+
* Soldier Visitor method.
37+
* @param soldier Soldier to be visited
38+
*/
3539
@Override
36-
public void visitSoldier(Soldier soldier) {
40+
public void visit(Soldier soldier) {
3741
LOGGER.info("Greetings {}", soldier);
3842
}
3943

44+
/**
45+
* Sergeant Visitor method.
46+
* @param sergeant Sergeant to be visited
47+
*/
4048
@Override
41-
public void visitSergeant(Sergeant sergeant) {
49+
public void visit(Sergeant sergeant) {
4250
// Do nothing
4351
}
4452

53+
/**
54+
* Commander Visitor method.
55+
* @param commander Commander to be visited
56+
*/
4557
@Override
46-
public void visitCommander(Commander commander) {
58+
public void visit(Commander commander) {
4759
// Do nothing
4860
}
4961
}

visitor/src/main/java/com/iluwatar/visitor/UnitVisitor.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,10 @@
2929
*/
3030
public interface UnitVisitor {
3131

32-
void visitSoldier(Soldier soldier);
32+
void visit(Soldier soldier);
3333

34-
void visitSergeant(Sergeant sergeant);
34+
void visit(Sergeant sergeant);
3535

36-
void visitCommander(Commander commander);
36+
void visit(Commander commander);
3737

3838
}

visitor/src/test/java/com/iluwatar/visitor/CommanderTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public CommanderTest() {
4343

4444
@Override
4545
void verifyVisit(Commander unit, UnitVisitor mockedVisitor) {
46-
verify(mockedVisitor).visitCommander(eq(unit));
46+
verify(mockedVisitor).visit(eq(unit));
4747
}
4848

4949
}

visitor/src/test/java/com/iluwatar/visitor/SergeantTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public SergeantTest() {
4343

4444
@Override
4545
void verifyVisit(Sergeant unit, UnitVisitor mockedVisitor) {
46-
verify(mockedVisitor).visitSergeant(eq(unit));
46+
verify(mockedVisitor).visit(eq(unit));
4747
}
4848

4949
}

0 commit comments

Comments
 (0)