Package standup.profiling

This package provides facilities for an arbitrary profileable application to be configurable through user profiles, a collection of files which can be loaded and saved to a specific folder.

See:
          Description

Interface Summary
Profileable A class that implements Profileable can be configured in various ways to alter its behaviour and functionality, and this configuration can be recorded as a user Profile.
 

Class Summary
Options A subclass of Options stores various option settings chosen by a user.
OptionsAuthoringTool An authoring tool that creates, loads, and saves OptionsPackages.
OptionsGUI This is a Java Swing-based GUI that extends JPanel and is used to edit an Options subclass.
OptionsPackage An OptionsPackage contains a collection of Options, and defines a complete configuration of a STANDUP system.
Profile A subclass of Profile stores user-specific information for a corresponding Profileable implementation.
ProfileManager The main class that should be used to create, retrieve, and save user profiles.
ProfileManagerGUI  
 

Exception Summary
ProfileException A very simple subclass of Exception that is specifically for Exceptions arising from within the profiling mechanism.
 

Package standup.profiling Description

This package provides facilities for an arbitrary profileable application to be configurable through user profiles, a collection of files which can be loaded and saved to a specific folder. These profiles contain

The Profileable, Profile, Options, and OptionsGUI interfaces

To make use of the profile loading and saving facilities provided by this package, one should be familiar with the following interfaces:

For example, the Backend class, which provides joke generation facilities, implements Profileable, as it is configurable in many ways, e.g. where it gets new jokes from, what type of jokes are to be generated, etc.

To support this, a ProfileJokeGeneration contains all information specific to a user relating to joke generation. For instance, it contains a user's generated joke log (through ProfileJokeGeneration.getGeneratedJokeLog()) and favourite jokes (through ProfileJokeGeneration.getFavourites()).

Furthermore, a standup.joke.ProfileJokeGeneration also contains a OptionsJokeGeneration, which stores all user-configurable information, i.e. parameters and options that can be modified by a user. Note that it is possible for an implementation of Profile to contain nothing but an Options field.

Finally, a standup.joke.OptionsJokeGeneration instance is editable through the use of a OptionsGUIJokeGeneration, a Java Swing-based user interface that provides a means to choose the various options through the use of checkboxes, dialogs, menus, etc.

Within the STANDUP system, there are 3 implementations of Profileable, along with their support classes. The following table lists them all:

Description Profileable Profile Options OptionsGUI
User interface CloudFrontend ProfileCloudFrontend OptionsCloudFrontend OptionsGUICloudFrontend
Joke generator Backend ProfileJokeGeneration OptionsJokeGeneration OptionsGUIJokeGeneration
Lexicon LexicalComponents ProfileLexicon OptionsLexicon OptionsGUILexicon

ProfileManager

Most of the functionality related to the creating, loading, using, and saving of user profiles is supported through the ProfileManager class. All methods in ProfileManager are static, so there is never a need to create an instantiation. Instead, it must first be first initialized before it can be used. This is achieved by calling one of the various ProfileManager.initialize methods.

OptionsPackage and OptionsAuthoringTool

An OptionsPackage contains a collection of Options, and defines a complete configuration of a STANDUP system. The STANDUP system may include a collection of pre-defined options packages, e.g. for beginners, intermediate, and advanced users. An OptionsPackage can be edited by the the OptionsAuthoringTool, which makes use of the various OptionsGUI panels. NOTE: the current implementation of OptionsPackage is rather hard-coded to include one each of OptionsCloudFrontend, OptionsJokeGeneration, and OptionsLexicon. Given more time, it would have been nice to allow arbitrary collections of Options implementations...

Miscellanous notes