Alignment API and Server 4.2.${version.update}

fr.inrialpes.exmo.align.service
Class CacheImpl

java.lang.Object
  extended by fr.inrialpes.exmo.align.service.CacheImpl

public class CacheImpl
extends Object

This class caches the content of the alignment database. I.e., It loads the metadata in the hash table It stores the alignment when requested It


Field Summary
(package private)  Hashtable<String,Alignment> alignmentTable
           
static String CACHED
           
(package private)  Connection conn
           
(package private)  int CONNECTION_ERROR
           
(package private)  String host
           
(package private)  int INIT_ERROR
           
(package private)  Hashtable<URI,Set<Alignment>> ontologyTable
           
static String OURI1
           
static String OURI2
           
(package private)  String port
           
(package private)  int rights
           
(package private)  DBService service
           
static String STORED
           
(package private)  int SUCCESS
           
static String SVCNS
           
(package private)  int VERSION
           
 
Constructor Summary
CacheImpl(DBService serv)
           
 
Method Summary
protected  Collection<Alignment> alignments()
           
 void changeColumnType(Statement st, String tableName, String columnName, String newType)
           
 void cleanUpCache()
           
 void close()
           
 Statement createStatement()
           
protected  void flushAlignment(Alignment alignment)
          unload the cells of an alignment...
protected  void flushCache()
           
 String generateAlignmentId()
           
private  String generateCellId(String alId)
           
 Alignment getAlignment(String id)
          retrieve full alignment from id (and cache it)
 Set<Alignment> getAlignments(URI uri)
           
 Set<Alignment> getAlignments(URI uri1, URI uri2)
          returns the alignments between two ontologies if one of the ontologies is null, then return them all
 Alignment getMetadata(String id)
          retrieve alignment metadata from id This is more difficult because we return the alignment we have disreagarding if it is complete o only metadata
 void init(Properties p)
          loads the alignment descriptions from the database and put them in the alignmentTable hashtable
 void initDatabase()
           
 boolean isAlignmentStored(Alignment alignment)
           
protected  Enumeration<Alignment> listAlignments()
           
private  void loadAlignments(boolean force)
          loads the alignment descriptions from the database and put them in the alignmentTable hashtable index them under the ontology URIs
 String quote(String s)
          quote: Prepare a string to be used in SQL queries by preceeding occurences of "'", """, and "\" by a "\".
private  int randomNum()
           
 String recordAlignment(String id, Alignment alignment, boolean force)
          records alignment identified by id
 String recordNewAlignment(Alignment alignment, boolean force)
          records newly created alignment
 String recordNewAlignment(String id, Alignment al, boolean force)
          records alignment identified by id
 void renameColumn(Statement st, String tableName, String oldName, String newName, String newType)
           
 void reset()
           
 void resetCacheStamp(Alignment result)
           
 void resetDatabase(boolean force)
           
protected  Alignment retrieveAlignment(String id, Alignment alignment)
          loads the full alignments from the database and put them in the alignmentTable hastable should be invoked when: ( result.getExtension(CACHED) == "" && result.getExtension(STORED) != "") {
protected  Alignment retrieveDescription(String id)
          loads the description of alignments from the database and set them in an alignment object Beware, the Alignment API has two attributes: onto1 is the Ontology object uri1 is the URI object from which loading the ontologies In the database we store: ontology1 the URI string of the ontology file1 the URI string from which loading the ontologies uri1 which should be the same as the last one...
 void storeAlignment(String id)
           
 void unstoreAlignment(String id)
          Non publicised class
 void updateDatabase()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

alignmentTable

Hashtable<String,Alignment> alignmentTable

ontologyTable

Hashtable<URI,Set<Alignment>> ontologyTable

host

String host

port

String port

rights

int rights

VERSION

final int VERSION
See Also:
Constant Field Values

service

DBService service

conn

Connection conn

CONNECTION_ERROR

final int CONNECTION_ERROR
See Also:
Constant Field Values

SUCCESS

final int SUCCESS
See Also:
Constant Field Values

INIT_ERROR

final int INIT_ERROR
See Also:
Constant Field Values

SVCNS

public static final String SVCNS

CACHED

public static final String CACHED
See Also:
Constant Field Values

STORED

public static final String STORED
See Also:
Constant Field Values

OURI1

public static final String OURI1
See Also:
Constant Field Values

OURI2

public static final String OURI2
See Also:
Constant Field Values
Constructor Detail

CacheImpl

public CacheImpl(DBService serv)
Method Detail

reset

public void reset()
           throws SQLException
Throws:
SQLException

init

public void init(Properties p)
          throws SQLException,
                 AlignmentException
loads the alignment descriptions from the database and put them in the alignmentTable hashtable

Throws:
SQLException
AlignmentException

close

public void close()
           throws SQLException
Throws:
SQLException

createStatement

public Statement createStatement()
                          throws SQLException
Throws:
SQLException

loadAlignments

private void loadAlignments(boolean force)
                     throws SQLException
loads the alignment descriptions from the database and put them in the alignmentTable hashtable index them under the ontology URIs

Throws:
SQLException

listAlignments

protected Enumeration<Alignment> listAlignments()

alignments

protected Collection<Alignment> alignments()

flushCache

protected void flushCache()

retrieveDescription

protected Alignment retrieveDescription(String id)
loads the description of alignments from the database and set them in an alignment object Beware, the Alignment API has two attributes: onto1 is the Ontology object uri1 is the URI object from which loading the ontologies In the database we store: ontology1 the URI string of the ontology file1 the URI string from which loading the ontologies uri1 which should be the same as the last one... Since alignments are indexed by the URI of the ontologies, we use the "ouri1" temporary extension to contain this URI.


retrieveAlignment

protected Alignment retrieveAlignment(String id,
                                      Alignment alignment)
                               throws SQLException,
                                      AlignmentException,
                                      URISyntaxException
loads the full alignments from the database and put them in the alignmentTable hastable should be invoked when: ( result.getExtension(CACHED) == "" && result.getExtension(STORED) != "") {

Throws:
SQLException
AlignmentException
URISyntaxException

flushAlignment

protected void flushAlignment(Alignment alignment)
unload the cells of an alignment... This should help retrieving some space should be invoked when: ( result.getExtension(CACHED) != "" && obviously result.getExtension(STORED) != ""


generateAlignmentId

public String generateAlignmentId()

generateCellId

private String generateCellId(String alId)

randomNum

private int randomNum()

getMetadata

public Alignment getMetadata(String id)
                      throws AlignmentException
retrieve alignment metadata from id This is more difficult because we return the alignment we have disreagarding if it is complete o only metadata

Throws:
AlignmentException

getAlignment

public Alignment getAlignment(String id)
                       throws AlignmentException,
                              SQLException
retrieve full alignment from id (and cache it)

Throws:
AlignmentException
SQLException

getAlignments

public Set<Alignment> getAlignments(URI uri)

getAlignments

public Set<Alignment> getAlignments(URI uri1,
                                    URI uri2)
returns the alignments between two ontologies if one of the ontologies is null, then return them all


recordNewAlignment

public String recordNewAlignment(Alignment alignment,
                                 boolean force)
records newly created alignment


recordNewAlignment

public String recordNewAlignment(String id,
                                 Alignment al,
                                 boolean force)
                          throws AlignmentException
records alignment identified by id

Throws:
AlignmentException

recordAlignment

public String recordAlignment(String id,
                              Alignment alignment,
                              boolean force)
records alignment identified by id


quote

public String quote(String s)
quote: Prepare a string to be used in SQL queries by preceeding occurences of "'", """, and "\" by a "\". This should be implemented at a lower level within Java itself (or the sql package). This function is used here for protecting everything to be entered in the database


isAlignmentStored

public boolean isAlignmentStored(Alignment alignment)

unstoreAlignment

public void unstoreAlignment(String id)
                      throws SQLException,
                             AlignmentException
Non publicised class

Throws:
SQLException
AlignmentException

storeAlignment

public void storeAlignment(String id)
                    throws AlignmentException,
                           SQLException
Throws:
AlignmentException
SQLException

resetCacheStamp

public void resetCacheStamp(Alignment result)

cleanUpCache

public void cleanUpCache()

initDatabase

public void initDatabase()
                  throws SQLException
Throws:
SQLException

resetDatabase

public void resetDatabase(boolean force)
                   throws SQLException,
                          AlignmentException
Throws:
SQLException
AlignmentException

renameColumn

public void renameColumn(Statement st,
                         String tableName,
                         String oldName,
                         String newName,
                         String newType)
                  throws SQLException
Throws:
SQLException

changeColumnType

public void changeColumnType(Statement st,
                             String tableName,
                             String columnName,
                             String newType)
                      throws SQLException
Throws:
SQLException

updateDatabase

public void updateDatabase()
                    throws SQLException,
                           AlignmentException
Throws:
SQLException
AlignmentException

Alignment API and Server 4.2.${version.update}

(C) INRIA & friends, 2003-${curryear}