Operations on Instances
Now we have a datastore in which we can store instances of our
classes. Each application needs to acquire a PersistenceManager to access and update the
datastore. Example 1-8
provides the source for the MediaManiaApp class, which serves as the base
class for each application in this book. Each application is a concrete
subclass of MediaManiaApp that
implements its application logic in the execute( ) method.
MediaManiaApp has a constructor
that loads the properties from jdo.properties (line [1]). After loading properties from the file, it
calls getPropertyOverrides( ) and
merges the returned properties into jdoproperties. An application subclass can
redefine getPropertyOverrides( ) to
provide any additional properties or change properties that are set in
the jdo.properties file. The
constructor gets a PersistenceManagerFactory (line [2]) and then acquires a PersistenceManager (line [3]). We also provide the getPersistenceManager( ) method to access the
PersistenceManager from outside the
MediaManiaApp class. The Transaction associated with the PersistenceManager is acquired on line
[4].
The application subclasses make a call to executeTransaction( ), defined in the MediaManiaApp class. This method begins a
transaction on line [5]. It then calls
execute( ) on line [6], which will execute the subclass-specific
functionality.
We chose this particular design for application classes to simplify and reduce the amount of redundant code in the examples for establishing ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access