| ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
An implementation of a Visitor pattern from
GoF "Design Patterns" book. It performs different actions upon
different kinds of RwiElements. Desired actions have to be written in corresponding
methods (for example, actions for nodes in visitNode, actions for members
in visitMember etc). They are called up from element's accept method which will
run the right method dependning on the kind of this element.
Every method returns a result of its actions. It can be null if it is not
required from this visitor to return any information.
For example, here is a visitor which outputs different things regarding to the type of an element called
a visitor via accept method:
public class NameVisitor implements RwiVisitor{
public Object visitNode(RwiNode node){
IdeMessageManagerAccess.printMessage(IdeMessageType.INFORMATION, "Visiting a node."); // specific action for a node
return null;
}
public Object visitMember(RwiMember member){
IdeMessageManagerAccess.printMessage(IdeMessageType.INFORMATION, "Visiting a member."); //specific action for a member
return null;
}
public Object visitPackage(RwiPackage rwiPackage){
IdeMessageManagerAccess.printMessage(IdeMessageType.INFORMATION, "Visiting a package."); // specific action for a package
return null;
}
public Object visitDiagram(RwiDiagram diagram){
IdeMessageManagerAccess.printMessage(IdeMessageType.INFORMATION, "Visiting a diagram."); // specific action for a diagram
return null;
}
public Object visitLink(RwiLink link){
IdeMessageManagerAccess.printMessage(IdeMessageType.INFORMATION, "Visiting a link."); // specific action for a link
return null;
}
}
RwiElements without
NameVisitor nameVisitor = new NameVisitor();
for (int i=0;i<myArrayOfRwiElements.length;i++){
myArrayOfRwiElements[i].accept(nameVisitor);
}| Method Summary | |
Object | visitDiagram(RwiDiagram diagram)Performs an action upon RwiDiagram. |
Object | visitLink(RwiLink link)Performs an action upon RwiLink. |
Object | visitMember(RwiMember member)Performs an action upon RwiMember. |
Object | visitNode(RwiNode node)Performs an action upon RwiNode. |
Object | visitPackage(RwiPackage rwiPackage)Performs an action upon RwiPackage. |
| Method Detail |
public Object visitDiagram(RwiDiagram diagram)
RwiDiagram.RwiDiagram which is the subject for the actionpublic Object visitLink(RwiLink link)
RwiLink.RwiLink which is the subject for the actionpublic Object visitMember(RwiMember member)
RwiMember.RwiMember which is the subject for the actionpublic Object visitNode(RwiNode node)
RwiNode.RwiNode which is the subject for the actionpublic Object visitPackage(RwiPackage rwiPackage)
RwiPackage.RwiPackage which is the subject for the action
| ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||