org.davesag.generica.persistence
Interface Archivist

All Known Implementing Classes:
HibernateArchivist, JdoArchivist

public interface Archivist

An Archivist manages persistance for objects by delegating to the correct underlying persistance strategy. It is vastly simpler that either the JDO or Hibernate interfaces and yet for 99% of operations is sufficient.

Since:
Generica 1.0
Version:
CVS Revision $Id: Archivist.java,v 1.4 2004/04/06 15:33:23 davesag Exp $
Author:
Dave Sag http://www.davesag.com

Method Summary
 void close()
          Closes the PersistanceManager so it an no longer be used.
 void delete(Object o)
          Delete the supplied object.
 boolean exists(Map fields, String classname)
          A fast test to determine if there is an object with values matching field names according to the supplied map.
 boolean exists(String namefield, String name, String classname)
          A fast test to determine if there is an object with the given name, using the supplied namefield and classname as qualifiers of the search.
 void flush()
          Flushes out the Persistancemanager's connection with the database.
 Transaction getTransaction()
          Return a Transaction that can be used to wrap atomic operations.
 Object load(Map fields, String classname)
          Load an object whose field values match the values keyed against those field names in the supplied Map.
 Object load(Object target, Class clazz)
          Load an object according to the target parameter supplied.
 Object load(String namefield, String name, String classname)
          Convenience method to load an object with the given name, using the supplied namefield and classname as qualifiers of the search.
 Object save(Object o)
          Save the supplied object.
 

Method Detail

load

public Object load(String namefield,
                   String name,
                   String classname)
            throws ArchiveException
Convenience method to load an object with the given name, using the supplied namefield and classname as qualifiers of the search. This assumes that the namefield:name pair are unique to this class.

Parameters:
namefield - The name of the property that holds the name to against.
name - The name The actual name we are looking for.
classname - The fully qualified class of the object to load.
Returns:
the object.
Throws:
ArchiveException - if anything went wrong.

load

public Object load(Map fields,
                   String classname)
            throws ArchiveException
Load an object whose field values match the values keyed against those field names in the supplied Map.

Parameters:
fields - The map of field valeus keyed against the field names they corrospond with.
classname - The fully qualified class of the object to load.
Returns:
the object.
Throws:
ArchiveException - if anything went wrong.

load

public Object load(Object target,
                   Class clazz)
            throws ArchiveException
Load an object according to the target parameter supplied.

Parameters:
target - The target that informs the archivist as to which object to load.
clazz - The class to load.
Returns:
the object.
Throws:
ArchiveException - if anything went wrong.

save

public Object save(Object o)
            throws ArchiveException
Save the supplied object.

Parameters:
o - the object to save.
Returns:
The saved object.
Throws:
ArchiveException - if anything went wrong.

delete

public void delete(Object o)
            throws ArchiveException
Delete the supplied object.

Parameters:
o - the object to delete.
Throws:
ArchiveException - if anything went wrong.

exists

public boolean exists(String namefield,
                      String name,
                      String classname)
               throws ArchiveException
A fast test to determine if there is an object with the given name, using the supplied namefield and classname as qualifiers of the search. Use this test if your application wishes to enforce uniqueness of name and thus enable the load method to make sense.

Parameters:
namefield - The name of the bean property that holds the name to test.
name - The name The actual name we are looking for.
classname - The fully qualified class of the persistable bean to test for.
Returns:
true if the name supplied corresponds to a known persistable object.
Throws:
ArchiveException - if anything went wrong.

exists

public boolean exists(Map fields,
                      String classname)
               throws ArchiveException
A fast test to determine if there is an object with values matching field names according to the supplied map. Use this test if your application wishes to enforce uniqueness of various fields and thus enable the load method to make sense. Load an object whose field values match the values keyed against those field names in the supplied Map.

Parameters:
fields - The map of field valeus keyed against the field names they corrospond with.
classname - The fully qualified class of the object to load.
Returns:
the object.
Throws:
ArchiveException - if anything went wrong.

getTransaction

public Transaction getTransaction()
                           throws ArchiveException
Return a Transaction that can be used to wrap atomic operations.

Returns:
a Transaction.
Throws:
ArchiveException - if anything went wrong.

flush

public void flush()
           throws ArchiveException
Flushes out the Persistancemanager's connection with the database.

Throws:
ArchiveException - if anything went wrong.

close

public void close()
           throws ArchiveException
Closes the PersistanceManager so it an no longer be used.

Throws:
ArchiveException - if anything went wrong.


Dave Sag Generica API version 0.5.9 - (prerelease) Copyright 2003 - 2004 Dave Sag.