Changeset 4 for trunk

Show
Ignore:
Timestamp:
11/16/07 16:50:01 (14 months ago)
Author:
mgorbach
Message:

Continuing work on the core classes for plugins and filesystems

Location:
trunk
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • trunk/MFFilesystem.h

    r3 r4  
    88 
    99#import <Cocoa/Cocoa.h> 
    10  
     10@class MFPlugin; 
    1111 
    1212@interface MFFilesystem : NSObject { 
  • trunk/MFFilesystem.m

    r3 r4  
    88 
    99#import "MFFilesystem.h" 
    10  
     10#import "MFPluginController.h" 
     11#import "MFPlugin.h" 
    1112 
    1213@interface MFFilesystem(PrivateAPI) 
    13 - (void)mergeParameters; 
    14 - (NSArray*)taskArgumentList 
     14- (NSMutableDictionary*)fullParametersWithDictionary: (NSDictionary*)fsParams; 
     15- (NSArray*)taskArgumentList; 
    1516@end 
    1617 
     
    3031} 
    3132 
     33 
    3234- (MFPlugin*)plugin 
    3335{ 
     
    3941{ 
    4042        // We want an immutable dictionary 
    41         return [parameterDictionary copy]; 
     43        return [parameters copy]; 
    4244} 
    4345 
    44 - (void)mergeParameters:(NSDictionary*)params 
     46- (NSMutableDictionary*)fullParametersWithDictionary:(NSDictionary*)fsParams 
    4547{ 
    46         NSDictionary* defaults = [[self plugin] defaultParameterDict]; 
    47         for(NSString* parameterKey in [defaults keyEnumerator]) 
     48        MFPlugin* plugin = [self plugin]; 
     49        NSDictionary* defaultParams = [plugin defaultParameterDictionary]; 
     50        NSMutableDictionary* params = [NSMutableDictionary dictionary]; 
     51         
     52        for(NSString* parameterKey in [defaultParams keyEnumerator]) 
    4853        { 
    49                 if ([params objectForKey:parameterKey] != nil) 
     54                if ([fsParams objectForKey:parameterKey] != nil) 
    5055                { 
    5156                        // The fs specifies a value for this parameter, take it. 
    5257                        // Validation per-value goes here 
    53                         [parameters setObject: [params objectForKey:parameterKey] 
    54                                                    forKey: parameterKey]; 
     58                        [params setObject: [fsParams objectForKey:parameterKey] 
     59                                        forKey: parameterKey]; 
    5560                } 
    5661                else  
     
    5863                        // The fs doesn't specify a value for this parameter. 
    5964                        // Use the default 
    60                         [parameters setObject: [defaults objectForKey:parameterKey] 
    61                                                    forKey: parameterKey]; 
     65                        [params setObject: [defaultParams objectForKey:parameterKey] 
     66                                        forKey: parameterKey]; 
    6267                } 
    6368                         
    6469        } 
     70         
     71        return params; 
    6572} 
    6673 
     
    8087                        // TODO: Value typing 
    8188                        NSString* searchString = [NSString stringWithFormat:@"[%@]", token]; 
    82                         id* value = [parameters objectForKey:parameterKey]; 
     89                        id value = [parameters objectForKey:parameterKey]; 
    8390                        NSString* stringValue; 
    8491                        if ([value isKindOfClass: [NSString class]]) 
     
    94101                                                                                  withString:value  
    95102                                                                                         options:NSLiteralSearch 
    96                                                                                            range:NSMakeRange(0, [receiver length])]; 
     103                                                                                           range:NSMakeRange(0, [formatString length])]; 
    97104                } 
    98105                 
     
    103110         
    104111        argParameters = [formatString componentsSeparatedByString:@" "]; 
     112        return argParameters; 
    105113} 
    106114 
    107115- (NSTask*)taskForLaunch 
    108116{ 
    109          
     117        return nil; 
    110118} 
    111119 
  • trunk/MFPlugin.h

    r3 r4  
    1919@property(readonly) NSString* inputFormatString; 
    2020 
    21 +(MFPlugin*)pluginFromBundleAtPath:(NSString*)path; 
     21+ (MFPlugin*)pluginFromBundleAtPath:(NSString*)path; 
     22 
     23- (NSDictionary*)defaultParameterDictionary; 
    2224 
    2325@end 
  • trunk/MFPlugin.m

    r3 r4  
    3434} 
    3535 
    36 - (void)defaultParameterDict 
     36- (NSDictionary*)defaultParameterDictionary 
    3737{ 
    3838        NSMutableDictionary* defaultsDictionary = [NSMutableDictionary dictionary]; 
     
    4545                                                           forKey:parameterKey]; 
    4646        } 
     47         
     48        return defaultsDictionary; 
    4749} 
    4850 
     
    5456- (NSString*)taskPath 
    5557{ 
    56         NSArray* locationsArray = [dictionary objectForKey:@"Binary Location"] 
     58        NSArray* locationsArray = [dictionary objectForKey:@"Binary Location"]; 
    5759        NSFileManager* fm = [NSFileManager defaultManager]; 
    5860        for(NSString* path in locationsArray) 
     
    7476                } 
    7577        } 
     78         
     79        // We can't find the executablr 
     80        return nil; 
    7681} 
    7782