Name: Anonymous 2015-09-25 3:36
we bring the rocket launcher to school?
interface BBCodeVisitor {
void visit(BBCode aBBCode);
}
class BBCodePrintVisitor implements BBCodeVisitor {
public void visit(BBCode aBBCode) {
System.out.println(aBBCode.getString());
}
}
class BBCodeOpenTagVisitor implements BBCodeVisitor {
String currentTag;
public void setTag(String aString) {
currentTag = "[" + aString + "]";
}
public void visit(BBCode aBBCode) {
aBBCode.setString(currentTag + aBBCode.getString());
}
}
class BBCodeCloseTagVisitor implements BBCodeVisitor {
String currentTag;
public void setTag(String aString) {
currentTag = "[/" + aString + "]";
}
public void visit(BBCode aBBCode) {
aBBCode.setString(aBBCode.getString() + currentTag);
}
}
class BBCode {
String myString;
public BBCode(String aString) {
myString = aString;
}
public void setString(String aString) {
myString = aString;
}
public String getString() {
return myString;
}
public void accept(BBCodeVisitor aVisitor) {
aVisitor.visit(this);
}
public void print() {
BBCodePrintVisitor printer = new BBCodePrintVisitor();
accept(printer);
}
}
class BBCodeFactory {
BBCode myBBCode;
public BBCodeFactory(String aString) {
myBBCode = new BBCode(aString);
}
public void applyTag(String aString) {
BBCodeOpenTagVisitor openTags = new BBCodeOpenTagVisitor();
BBCodeCloseTagVisitor closeTags = new BBCodeCloseTagVisitor();
openTags.setTag(aString);
closeTags.setTag(aString);
myBBCode.accept(openTags);
myBBCode.accept(closeTags);
}
public BBCode getBBCode() {
return myBBCode;
}
}
class NoExceptions {
public static void main(String[] args) {
BBCode aBBCode = null;
try {
String noExceptions = "NO EXCEPTIONS";
BBCodeFactory myBBCodeFactory = new BBCodeFactory(noExceptions);
myBBCodeFactory.applyTag("u");
myBBCodeFactory.applyTag("o");
myBBCodeFactory.applyTag("i");
myBBCodeFactory.applyTag("b");
aBBCode = myBBCodeFactory.getBBCode();
throw new Exception();
} catch (Exception e) {
aBBCode.print();
}
}
}