This is a little example to demonstrate how the states of object's can respond to actions by other objects and the passage of time. In this example, a user occasionally places a message in a channel. The user keeps track of its time and acts when it's ready. The channel also notices when a message is inserted and after some interval of time, "evaporates" the message.
You'll need to print out this code and sit and study it until you understand just what is going on. There are many ways to implement a system with this functionality. I've chosen just one of the many. Some approaches are less verbose but not necessarily as easy to understand.
Here is the source code for all three Java files which include Javadoc-styled comments.
Here are the . Javadoc pages that document the API for the Evap project, based on the Javadoc-styled comments in the three files.