]> err.no Git - sope/blobdiff - sope-appserver/NGObjWeb/WOResourceManager.m
minor improvement to WOHttpAdaptor, bumped framework revisions
[sope] / sope-appserver / NGObjWeb / WOResourceManager.m
index ce247324264780b55452579c39219030f75c40e3..ec67480a78eeb678cc82d12bdbeed2d99d652542 100644 (file)
@@ -203,7 +203,7 @@ _pathExists(WOResourceManager *self, NSFileManager *fm, NSString *path)
   return debugOn;
 }
 - (NSString *)loggingPrefix {
-  unsigned char buf[32];
+  char buf[32];
   sprintf(buf, "[wo-rm-0x%08X]", (unsigned)self);
   return [NSString stringWithCString:buf];
 }
@@ -537,12 +537,11 @@ _pathExists(WOResourceManager *self, NSFileManager *fm, NSString *path)
 
 /* string tables */
 
-- (NSString *)stringForKey:(NSString *)_key
-  inTableNamed:(NSString *)_tableName
-  withDefaultValue:(NSString *)_defaultValue
+- (id)stringTableWithName:(NSString *)_tableName
   inFramework:(NSString *)_framework
-  languages:(NSArray *)_languages;
+  languages:(NSArray *)_languages
 {
+  /* side effect: tables are cached (currently not affected by default!) */
   NSFileManager  *fm;
   _WOStringTable *table     = nil;
   NSString       *path      = nil;
@@ -558,21 +557,34 @@ _pathExists(WOResourceManager *self, NSFileManager *fm, NSString *path)
   path = [self pathForResourceNamed:path inFramework:_framework 
                languages:_languages];
   
-  if (path != nil) {
-    if ((table = NSMapGet(self->stringTables, path)) == NULL) {
-      if ([fm fileExistsAtPath:path]) {
-       table = [_WOStringTable allocWithZone:[self zone]]; /* for gcc */
-        table = [table initWithPath:path];
-        NSMapInsert(self->stringTables, path, table);
-        [table release];
-      }
+  if (path == nil)
+    return nil;
+  
+  if ((table = NSMapGet(self->stringTables, path)) == NULL) {
+    if ([fm fileExistsAtPath:path]) {
+      table = [_WOStringTable allocWithZone:[self zone]]; /* for gcc */
+      table = [table initWithPath:path];
+      NSMapInsert(self->stringTables, path, table);
+      [table release];
     }
-    if (table != nil)
-      return [table stringForKey:_key withDefaultValue:_defaultValue];
   }
-  /* didn't found table in cache */
+  return table;
+}
+
+- (NSString *)stringForKey:(NSString *)_key
+  inTableNamed:(NSString *)_tableName
+  withDefaultValue:(NSString *)_defaultValue
+  inFramework:(NSString *)_framework
+  languages:(NSArray *)_languages
+{
+  _WOStringTable *table     = nil;
   
-  return _defaultValue;
+  table = [self stringTableWithName:_tableName inFramework:_framework 
+               languages:_languages];
+  
+  return (table != nil)
+    ? [table stringForKey:_key withDefaultValue:_defaultValue]
+    : _defaultValue;
 }
 
 - (NSString *)stringForKey:(NSString *)_key
@@ -922,6 +934,7 @@ _pathExists(WOResourceManager *self, NSFileManager *fm, NSString *path)
   
   /* lookup component path */
   
+  // TODO: Explain why _framework and _languages are NOT passed!
   [self _getComponentURL:&componentURL andName:&_name 
        forNameOrURL:_name inFramework:nil languages:nil];
   
@@ -1061,7 +1074,7 @@ _pathExists(WOResourceManager *self, NSFileManager *fm, NSString *path)
   return (WOElement *)[cdef template];
 }
 
-- (WOComponent *)pageWithName:(NSString *)_name languages:(NSArray *)_langs {
+- (id)pageWithName:(NSString *)_name languages:(NSArray *)_langs {
   /* 
      TODO: this appears to be deprecated since the WOComponent initializer
            is now -initWithContext: and we have no context over here ...
@@ -1084,19 +1097,6 @@ _pathExists(WOResourceManager *self, NSFileManager *fm, NSString *path)
   return [component autorelease];
 }
 
-/* description */
-
-- (NSString *)description {
-  NSMutableString *ms;
-
-  ms = [NSMutableString stringWithCapacity:32];
-  [ms appendFormat:@"<0x%08X[%@]:", self, NSStringFromClass([self class])];
-  if ([self->base length] > 0)
-    [ms appendFormat:@" path='%@'", self->base];
-  [ms appendString:@">"];
-  return ms;
-}
-
 /* KeyedData */
 
 - (void)setData:(NSData *)_data
@@ -1165,4 +1165,17 @@ _pathExists(WOResourceManager *self, NSFileManager *fm, NSString *path)
   [self unlock];
 }
 
+/* description */
+
+- (NSString *)description {
+  NSMutableString *ms;
+
+  ms = [NSMutableString stringWithCapacity:32];
+  [ms appendFormat:@"<0x%08X[%@]:", self, NSStringFromClass([self class])];
+  if ([self->base length] > 0)
+    [ms appendFormat:@" path='%@'", self->base];
+  [ms appendString:@">"];
+  return ms;
+}
+
 @end /* WOResourceManager */