Application.java:

- Update rootMapping and userMapping in updateProperties()
- Replace getRootPrototype() with getRootMapping()
DbMapping():
- Implement static areStorageCompatible() method to check
  two DbMappings, both of which may be null
NodeManager:
- Update to use new methods
This commit is contained in:
hns 2005-05-13 15:20:16 +00:00
parent 4def8eed1e
commit 70ea9f7aa3
3 changed files with 20 additions and 10 deletions

View file

@ -356,9 +356,6 @@ public final class Application implements IPathElement, Runnable {
// create the skin manager // create the skin manager
skinmgr = new SkinManager(this); skinmgr = new SkinManager(this);
rootMapping = getDbMapping(rootPrototype);
userMapping = getDbMapping(userPrototype);
// The whole user/userroot handling is basically old // The whole user/userroot handling is basically old
// ugly obsolete crap. Don't bother. // ugly obsolete crap. Don't bother.
ResourceProperties p = new ResourceProperties(); ResourceProperties p = new ResourceProperties();
@ -768,8 +765,8 @@ public final class Application implements IPathElement, Runnable {
/** /**
* Return the prototype of the object to be used as this application's root object * Return the prototype of the object to be used as this application's root object
*/ */
public String getRootPrototype() { public DbMapping getRootMapping() {
return rootPrototype; return rootMapping;
} }
/** /**
@ -1717,6 +1714,8 @@ public final class Application implements IPathElement, Runnable {
rootId = props.getProperty("rootid", "0"); rootId = props.getProperty("rootid", "0");
rootPrototype = props.getProperty("rootprototype", "root"); rootPrototype = props.getProperty("rootprototype", "root");
userPrototype = props.getProperty("userprototype", "user"); userPrototype = props.getProperty("userprototype", "user");
rootMapping = getDbMapping(rootPrototype);
userMapping = getDbMapping(userPrototype);
hrefRootPrototype = props.getProperty("hrefrootprototype"); hrefRootPrototype = props.getProperty("hrefrootprototype");

View file

@ -1296,8 +1296,20 @@ public final class DbMapping {
} }
/** /**
* Tell if another DbMapping is storage-compatible to this one, i.e. it is stored in the same table or * Static utility method to check whether two DbMappings use the same storage.
* embedded database. *
* @return true if both use the embedded database or the same relational table.
*/
public static boolean areStorageCompatible(DbMapping dbm1, DbMapping dbm2) {
if (dbm1 == null)
return dbm2 == null || !dbm2.isRelational();
return dbm1.isStorageCompatible(dbm2);
}
/**
* Tell if this DbMapping uses the same storage as the given DbMapping.
*
* @return true if both use the embedded database or the same relational table.
*/ */
public boolean isStorageCompatible(DbMapping other) { public boolean isStorageCompatible(DbMapping other) {
if (other == null) { if (other == null) {

View file

@ -101,8 +101,7 @@ public final class NodeManager {
* Gets the application's root node. * Gets the application's root node.
*/ */
public Node getRootNode() throws Exception { public Node getRootNode() throws Exception {
DbMapping dbmap = getDbMapping(app.getRootPrototype()); DbKey key = new DbKey(app.getRootMapping(), app.getRootId());
DbKey key = new DbKey(dbmap, app.getRootId());
return getNode(key); return getNode(key);
} }
/** /**
@ -110,7 +109,7 @@ public final class NodeManager {
*/ */
public boolean isRootNode(Node node) { public boolean isRootNode(Node node) {
return app.getRootId().equals(node.getID()) && return app.getRootId().equals(node.getID()) &&
app.getRootPrototype().equals(node.getPrototype()); DbMapping.areStorageCompatible(app.getRootMapping(), node.getDbMapping());
} }
/** /**