$ javac Toilet.java AutoToilet.java

$ java Toilet
Seat up
Splash!  pee
Splash!  more pee
Seat down
Splash!  poo
Yuck ... should have flushed first ... oh well here goes ... Splash!  more poo
Pretending to execute complicated flush procedure ... all gone
Splash!  cigarettes
Pretending to execute complicated flush procedure ... Overflowed cigarettes 
 all over the place ... Exception in thread "main" FloatingOverflowException
        at Toilet.flush(Toilet.java:65)
        at Toilet.main(Toilet.java:101)

$ java AutoToilet
Thanks for trying to adjust the seat, but it's not necessary for this 
 fancy toilet.
Whirr ... creak ... Seat up
Splash!  pee
Whirr ... creak ... Seat down
Splash!  more pee
Splash!  poo
Yuck ... should have flushed first ... oh well here goes ... Splash!  more poo
Pretending to execute complicated flush procedure ... all gone
Splash!  cigarettes
Pretending to execute complicated flush procedure ... Overflowed cigarettes 
 all over the place ... Caught exception, cleaning up mess.
Retrying flush: Pretending to execute complicated flush procedure ... 
 Overflowed cigarettes all over the place ... Caught exception, cleaning up mess.
Retrying flush: Pretending to execute complicated flush procedure ... 
 Overflowed cigarettes all over the place ... Caught exception, cleaning up mess.
Retrying flush: Pretending to execute complicated flush procedure ... all gone
All done.  No need to destroy toilet; it will be garbage-collected.