Solved the classcast exception and used instanceof instead. Improved javadocs a bit.
This commit is contained in:
parent
9e56e5cbc1
commit
f3749a2b9d
@ -23,8 +23,9 @@
|
|||||||
package com.iluwatar.acyclicvisitor;
|
package com.iluwatar.acyclicvisitor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* All ModemVisitor interface extends all visitor interfaces
|
* All ModemVisitor interface extends all visitor interfaces. This interface
|
||||||
|
* provides ease of use when a visitor needs to visit all modem types.
|
||||||
*/
|
*/
|
||||||
public interface AllModemVisitor extends ModemVisitor, ZoomVisitor, HayesVisitor{
|
public interface AllModemVisitor extends ZoomVisitor, HayesVisitor{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -27,9 +27,10 @@ import org.slf4j.LoggerFactory;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* ConfigureForUnixVisitor class implements zoom's visit method for Unix
|
* ConfigureForUnixVisitor class implements zoom's visit method for Unix
|
||||||
* manufacturer
|
* manufacturer, unlike traditional visitor pattern, this class may selectively implement
|
||||||
|
* visit for other modems.
|
||||||
*/
|
*/
|
||||||
public class ConfigureForUnixVisitor implements ModemVisitor, ZoomVisitor {
|
public class ConfigureForUnixVisitor implements ZoomVisitor {
|
||||||
|
|
||||||
private static final Logger LOGGER = LoggerFactory.getLogger(ConfigureForUnixVisitor.class);
|
private static final Logger LOGGER = LoggerFactory.getLogger(ConfigureForUnixVisitor.class);
|
||||||
|
|
||||||
|
@ -37,10 +37,10 @@ public class Hayes extends Modem {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void accept(ModemVisitor modemVisitor) {
|
public void accept(ModemVisitor modemVisitor) {
|
||||||
try {
|
if (modemVisitor instanceof HayesVisitor) {
|
||||||
((HayesVisitor) modemVisitor).visit(this);
|
((HayesVisitor) modemVisitor).visit(this);
|
||||||
} catch (ClassCastException e) {
|
} else {
|
||||||
LOGGER.error("Unable to cast to HayesVisitor");
|
LOGGER.info("Only HayesVisitor is allowed to visit Hayes modem");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -37,10 +37,10 @@ public class Zoom extends Modem {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void accept(ModemVisitor modemVisitor) {
|
public void accept(ModemVisitor modemVisitor) {
|
||||||
try {
|
if (modemVisitor instanceof ZoomVisitor) {
|
||||||
((ZoomVisitor) modemVisitor).visit(this);
|
((ZoomVisitor) modemVisitor).visit(this);
|
||||||
} catch (ClassCastException e) {
|
} else {
|
||||||
LOGGER.error("Unable to cast to ZoomVisitor");
|
LOGGER.info("Only ZoomVisitor is allowed to visit Zoom modem");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user