Timewindow Time-limiting Notes

Products page
Revision history
User guide
Installation guide
Time-limiting notes
Directives file
Buildtool integration
License and download
Purchase
Faqs/Known issues
Email
Time-limiting

Time-limiting for a java class is done by inserting time-checking code into one or more methods of the class. When the code is executed it will check the current date on the system and only allow execution to continue if the date lies within the allowable date-range. If the system date is outside of the allowable range, the current thread will be stuck in a do-nothing loop. The date-range is given by the start and end dates (both inclusive), that are specified via the GUI or the directives file.
Time-checking code will only be inserted into non-abstract methods of non-interface classes, and can be performed on class initializers or on regular methods of a class. Class initializers are methods that are executed when the class is first loaded and initialized. This means that the time-checking will be done the very first time that the class is used. When class initializers are being time-limited, any class that does not already have an existing class initializer method will have one created.
In the case of regular methods the time-checking will only be done when the control flow of the program happens to execute that particular method. This is useful if it is desirable for some portions of the program to be able to run (such as printing a message to warn the user of the time limit), before getting to the time-checking code.

Code merging Time-limiting is achieved by inserting the time-checking code into existing methods. Where possible the new code is "merged" in with existing code so that its function is less obvious. This means that where possible, the new bytecode instructions are spread out within the already existing code instead of being added as one logical block.

Optional information Optional information such as line number table attributes, and local variable table attributes are always removed from the classes that are processed.