/* 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 StepBuilderExample
{
interface FinishedProduct {
}
interface StepOneDoer {
StepTwoDoer doStepOne();
}
interface StepTwoDoer {
StepThreeDoer doStepTwo();
}
interface StepThreeDoer {
FinishedProduct doStepThree();
}
{
StepOneDoer x = null; // get one somehow.
StepTwoDoer y = x.doStepOne();
StepThreeDoer z = y.doStepTwo();
FinishedProduct p = z.doStepThree();
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgU3RlcEJ1aWxkZXJFeGFtcGxlCnsKCWludGVyZmFjZSBGaW5pc2hlZFByb2R1Y3QgewoJCQoJfQoJCglpbnRlcmZhY2UgU3RlcE9uZURvZXIgewoJCVN0ZXBUd29Eb2VyIGRvU3RlcE9uZSgpOwoJfQoJCglpbnRlcmZhY2UgU3RlcFR3b0RvZXIgewoJCVN0ZXBUaHJlZURvZXIgZG9TdGVwVHdvKCk7Cgl9CgkKCWludGVyZmFjZSBTdGVwVGhyZWVEb2VyIHsKCQlGaW5pc2hlZFByb2R1Y3QgZG9TdGVwVGhyZWUoKTsKCX0KCQoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJU3RlcE9uZURvZXIgeCA9IG51bGw7IC8vIGdldCBvbmUgc29tZWhvdy4KCQlTdGVwVHdvRG9lciB5ID0geC5kb1N0ZXBPbmUoKTsKCQlTdGVwVGhyZWVEb2VyIHogPSB5LmRvU3RlcFR3bygpOwoJCUZpbmlzaGVkUHJvZHVjdCBwID0gei5kb1N0ZXBUaHJlZSgpOwoJfQp9