/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
// your code goes here
}
}
abstract class Validator
{
private boolean isValid;
public Validator()
{
isValid = true;
}
public void validate1()
{
reset();
}
public final void validate2()
{
reset();
validateInternal();
}
protected abstract void validateInternal();
protected void reset()
{
isValid = true;
}
}
class ConcreteValidator extends Validator
{
public void validate1()
{
super.validate1();
System.
out.
println("ConcreteValidator.validate()"); }
public void validateInternal()
{
System.
out.
println("ConcreteValidator.validateInternal()"); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCX0KfQoKYWJzdHJhY3QgY2xhc3MgVmFsaWRhdG9yCnsKCXByaXZhdGUgYm9vbGVhbiBpc1ZhbGlkOwoJCglwdWJsaWMgVmFsaWRhdG9yKCkKCXsKCQlpc1ZhbGlkID0gdHJ1ZTsKCX0KCQoJcHVibGljIHZvaWQgdmFsaWRhdGUxKCkKCXsKCQlyZXNldCgpOwoJfQoJCglwdWJsaWMgZmluYWwgdm9pZCB2YWxpZGF0ZTIoKQoJewoJCXJlc2V0KCk7CgkJdmFsaWRhdGVJbnRlcm5hbCgpOwoJfQoJCglwcm90ZWN0ZWQgYWJzdHJhY3Qgdm9pZCB2YWxpZGF0ZUludGVybmFsKCk7CgkKCXByb3RlY3RlZCB2b2lkIHJlc2V0KCkKCXsKCQlpc1ZhbGlkID0gdHJ1ZTsJCgl9Cn0KCmNsYXNzIENvbmNyZXRlVmFsaWRhdG9yIGV4dGVuZHMgVmFsaWRhdG9yCnsKCXB1YmxpYyB2b2lkIHZhbGlkYXRlMSgpCgl7CgkJc3VwZXIudmFsaWRhdGUxKCk7CgkJU3lzdGVtLm91dC5wcmludGxuKCJDb25jcmV0ZVZhbGlkYXRvci52YWxpZGF0ZSgpIik7Cgl9CgkKCXB1YmxpYyB2b2lkIHZhbGlkYXRlSW50ZXJuYWwoKQoJewoJCVN5c3RlbS5vdXQucHJpbnRsbigiQ29uY3JldGVWYWxpZGF0b3IudmFsaWRhdGVJbnRlcm5hbCgpIik7Cgl9Cn0=