00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 package org.objectweb.cjdbc.controller.virtualdatabase;
00026
00027 import org.objectweb.cjdbc.common.log.Trace;
00028 import org.objectweb.cjdbc.common.sql.metadata.MetadataContainer;
00029 import org.objectweb.cjdbc.controller.backend.DatabaseBackend;
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040 public class VirtualDatabaseStaticMetaData
00041 {
00042 private String vdbName;
00043 private Trace logger;
00044 private MetadataContainer metadataContainer = null;
00045
00046
00047
00048
00049
00050
00051
00052 public VirtualDatabaseStaticMetaData(VirtualDatabase database)
00053 {
00054 this.vdbName = database.getVirtualDatabaseName();
00055 this.logger = Trace
00056 .getLogger("org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseWorkerThread."
00057 + vdbName + ".metadata");
00058 }
00059
00060
00061
00062
00063
00064
00065
00066 public void gatherStaticMetadata(DatabaseBackend backend)
00067 {
00068 MetadataContainer newContainer = backend.getDatabaseStaticMetadata();
00069 if (logger.isDebugEnabled())
00070 logger.debug("fetching static metadata for backend:" + backend.getName());
00071 if (metadataContainer == null)
00072 metadataContainer = newContainer;
00073 else
00074 {
00075 boolean isCompatible = metadataContainer.isCompatible(newContainer,
00076 logger);
00077 if (logger.isDebugEnabled())
00078 logger.debug("Backend static metadata is compatible with current ones:"
00079 + isCompatible);
00080 }
00081 }
00082
00083
00084
00085
00086
00087
00088 public MetadataContainer getMetadataContainer()
00089 {
00090 return metadataContainer;
00091 }
00092 }