org.vrspace.server.db
Class DBCache

java.lang.Object
  extended byorg.vrspace.server.DB
      extended byorg.vrspace.server.db.DBCache

public class DBCache
extends DB

In memory write-through cache. Holds reference to persisting DB class.


Field Summary
 
Fields inherited from class org.vrspace.server.DB
cache
 
Constructor Summary
DBCache(DB db)
           
 
Method Summary
 void commit()
          Commit.
 void connect(java.lang.String name)
          Connect to database.
 java.lang.String create(java.lang.String name)
          create a new database if does not exist
 void delete(java.lang.Object obj)
          From the table obj.getClass().getName() deletes the row having db_id == obj.db_id, from both cache and the underlying db.
 void disconnect()
          Disconnect
 java.lang.Object get(java.lang.Object obj)
          Get an object.
 java.lang.Object get(java.lang.String className, long id)
          Returns the object having id == obj.db_id
 java.lang.Object get(java.lang.String className, java.lang.String field, java.lang.Object value)
          Returns the object of className class having field == value
 java.lang.Object[] getAll(java.lang.String className)
          Returns all members of the class
 java.lang.String[] getClasses()
          Returns all VRObject Classes stored in the database.
 java.lang.String getClassName(java.lang.Object obj)
           
 java.lang.Object[] getRange(java.lang.Object o1, java.lang.Object o2)
          Returns Object[] between o1 and o2 Class must have comparator() method to be searchable.
 java.lang.Object[] getRange(java.lang.String className, java.lang.String field, java.lang.Object value)
          Returns Object[] of className class having field == value
 void put(java.lang.Object obj)
          Stores obj into database
 boolean tableExists(java.lang.String table)
          Does table exist?
 void update(Request r)
          This method updates object in cache and passes request to underlying database.
 
Methods inherited from class org.vrspace.server.DB
load, load, load
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DBCache

public DBCache(DB db)
Method Detail

create

public java.lang.String create(java.lang.String name)
                        throws java.lang.Exception
Description copied from class: DB
create a new database if does not exist

Specified by:
create in class DB
Parameters:
name - Database name
Returns:
String to use as parameter to connect()
Throws:
java.lang.Exception
See Also:
DB.connect(java.lang.String)

connect

public void connect(java.lang.String name)
             throws java.lang.Exception
Connect to database. Calls underlying DB connect(). If underlying DB is SQLDB, loads all objects from DB into cache.

Specified by:
connect in class DB
Throws:
java.lang.Exception

disconnect

public void disconnect()
Disconnect

Specified by:
disconnect in class DB

commit

public void commit()
Commit. Just calls underlying commit

Specified by:
commit in class DB

get

public java.lang.Object get(java.lang.Object obj)
                     throws java.lang.Exception
Get an object.

Specified by:
get in class DB
Throws:
java.lang.Exception

delete

public void delete(java.lang.Object obj)
            throws java.lang.Exception
From the table obj.getClass().getName() deletes the row having db_id == obj.db_id, from both cache and the underlying db.

Specified by:
delete in class DB
Throws:
java.lang.Exception

get

public java.lang.Object get(java.lang.String className,
                            long id)
                     throws java.lang.Exception
Returns the object having id == obj.db_id

Specified by:
get in class DB
Throws:
java.lang.Exception

get

public java.lang.Object get(java.lang.String className,
                            java.lang.String field,
                            java.lang.Object value)
                     throws java.lang.Exception
Returns the object of className class having field == value

Specified by:
get in class DB
Throws:
java.lang.Exception

getAll

public java.lang.Object[] getAll(java.lang.String className)
                          throws java.lang.Exception
Returns all members of the class

Specified by:
getAll in class DB
Throws:
java.lang.Exception

getClasses

public java.lang.String[] getClasses()
                              throws java.lang.Exception
Returns all VRObject Classes stored in the database.

Specified by:
getClasses in class DB
Throws:
java.lang.Exception

getRange

public java.lang.Object[] getRange(java.lang.String className,
                                   java.lang.String field,
                                   java.lang.Object value)
                            throws java.lang.Exception
Returns Object[] of className class having field == value

Specified by:
getRange in class DB
Throws:
java.lang.Exception

getRange

public java.lang.Object[] getRange(java.lang.Object o1,
                                   java.lang.Object o2)
                            throws java.lang.Exception
Returns Object[] between o1 and o2 Class must have comparator() method to be searchable.

Specified by:
getRange in class DB
Throws:
java.lang.Exception

getClassName

public java.lang.String getClassName(java.lang.Object obj)

put

public void put(java.lang.Object obj)
         throws java.lang.Exception
Stores obj into database

Specified by:
put in class DB
Throws:
java.lang.Exception

update

public void update(Request r)
            throws java.lang.Exception
This method updates object in cache and passes request to underlying database.

Specified by:
update in class DB
Throws:
java.lang.Exception

tableExists

public boolean tableExists(java.lang.String table)
Does table exist?