From: Christiaan H. <ho...@us...> - 2005-08-28 19:23:02
|
Update of /cvsroot/bibdesk/bibdesk In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24238 Modified Files: Tag: BR_1x BibItem.h BibItem.m Log Message: Add accessors for local file paths and remote URLs for arbitrary field names. Index: BibItem.h =================================================================== RCS file: /cvsroot/bibdesk/bibdesk/BibItem.h,v retrieving revision 1.64.2.6 retrieving revision 1.64.2.7 diff -C2 -d -r1.64.2.6 -r1.64.2.7 *** BibItem.h 26 Aug 2005 18:48:35 -0000 1.64.2.6 --- BibItem.h 28 Aug 2005 19:22:53 -0000 1.64.2.7 *************** *** 557,562 **** /*! @method remoteURL ! @abstract Returns a valid URL or nil. Adds percent escapes as necessary, as online databases can return doi (and other?) ! string representations of URLs which are invalid according to the relevant RFC. @discussion (comprehensive description) @result (description) --- 557,561 ---- /*! @method remoteURL ! @abstract Calls remoteURLForField: with the Url field. @discussion (comprehensive description) @result (description) *************** *** 565,568 **** --- 564,577 ---- /*! + @method remoteURLForField: + @abstract Returns a valid URL or nil for the given field. Adds percent escapes as necessary, as online databases can return doi (and other?) + string representations of URLs which are invalid according to the relevant RFC. + @discussion (comprehensive description) + @param field the field name linking the local file. + @result (description) + */ + - (NSURL *)remoteURLForField:(NSString *)field; + + /*! @method localURLPath @abstract Calls localURLPathInheriting: with inherit set to YES. *************** *** 574,578 **** /*! @method localURLPathInheriting: ! @abstract Calls localURLPathRelativeTo:inherit: with the path to the document. @param inherit Boolean, if set follows the Crossref to find inherited date. @discussion - --- 583,587 ---- /*! @method localURLPathInheriting: ! @abstract Calls localFilePathForField:relativeTo:inherit: with the Local-Url field and the path to the document. @param inherit Boolean, if set follows the Crossref to find inherited date. @discussion - *************** *** 582,593 **** /*! ! @method localURLPathRelativeTo:inherit: ! @abstract attempts to return a path to the local-url file, relative to the base parameter @discussion If the local-url field is a relative path, this will prepend base to it and return the path from building a URL with the result. If the value of local-url is a valid file url already, base is ignored. Base is also ignored if the value of local-url is an absolute path or has a tilde. @param base a path to serve as the base for resolving the relative path. @param inherit Boolean, if set follows the Crossref to find inherited date. @result a complete path with no tildes, or nil if an error occurred. */ ! - (NSString *)localURLPathRelativeTo:(NSString *)base inherit:(BOOL)inherit; /*! --- 591,612 ---- /*! ! @method localFilePathForField: ! @abstract Calls localFilePathForField:relativeTo:inherit: with the path to the document and inherit set to YES. ! @discussion - ! @param field the field name linking the local file. ! @result a complete path with no tildes, or nil if an error occurred. ! */ ! - (NSString *)localFilePathForField:(NSString *)field; ! ! /*! ! @method localFilePathForField:inherit: ! @abstract attempts to return a path to the local file linked through the field, relative to the base parameter @discussion If the local-url field is a relative path, this will prepend base to it and return the path from building a URL with the result. If the value of local-url is a valid file url already, base is ignored. Base is also ignored if the value of local-url is an absolute path or has a tilde. + @param field the field name linking the local file. @param base a path to serve as the base for resolving the relative path. @param inherit Boolean, if set follows the Crossref to find inherited date. @result a complete path with no tildes, or nil if an error occurred. */ ! - (NSString *)localFilePathForField:(NSString *)field relativeTo:(NSString *)base inherit:(BOOL)inherit; /*! Index: BibItem.m =================================================================== RCS file: /cvsroot/bibdesk/bibdesk/BibItem.m,v retrieving revision 1.221.2.25 retrieving revision 1.221.2.26 diff -C2 -d -r1.221.2.25 -r1.221.2.26 *** BibItem.m 26 Aug 2005 18:48:35 -0000 1.221.2.25 --- BibItem.m 28 Aug 2005 19:22:53 -0000 1.221.2.26 *************** *** 1524,1528 **** - (NSURL *)remoteURL{ ! CFStringRef urlString = (CFStringRef)[pubFields objectForKey:BDSKUrlString usingLock:bibLock]; if(urlString == nil || CFStringCompare(urlString, CFSTR(""), 0) == kCFCompareEqualTo) return nil; --- 1524,1532 ---- - (NSURL *)remoteURL{ ! return [self remoteURLForField:BDSKUrlString]; ! } ! ! - (NSURL *)remoteURLForField:(NSString *)field{ ! CFStringRef urlString = (CFStringRef)[pubFields objectForKey:field usingLock:bibLock]; if(urlString == nil || CFStringCompare(urlString, CFSTR(""), 0) == kCFCompareEqualTo) return nil; *************** *** 1543,1552 **** - (NSString *)localURLPathInheriting:(BOOL)inherit{ ! return [self localURLPathRelativeTo:[[document fileName] stringByDeletingLastPathComponent] inherit:inherit]; } ! - (NSString *)localURLPathRelativeTo:(NSString *)base inherit:(BOOL)inherit{ NSURL *localURL = nil; ! NSString *localURLFieldValue = [self valueOfField:BDSKLocalUrlString inherit:inherit]; if (!localURLFieldValue || [localURLFieldValue isEqualToString:@""]) return nil; --- 1547,1560 ---- - (NSString *)localURLPathInheriting:(BOOL)inherit{ ! return [self localFilePathForField:BDSKLocalUrlString relativeTo:[[document fileName] stringByDeletingLastPathComponent] inherit:inherit]; } ! - (NSString *)localFilePathForField:(NSString *)field{ ! return [self localFilePathForField:field relativeTo:[[document fileName] stringByDeletingLastPathComponent] inherit:YES]; ! } ! ! - (NSString *)localFilePathForField:(NSString *)field relativeTo:(NSString *)base inherit:(BOOL)inherit{ NSURL *localURL = nil; ! NSString *localURLFieldValue = [self valueOfField:field inherit:inherit]; if (!localURLFieldValue || [localURLFieldValue isEqualToString:@""]) return nil; |