SampleFileInfo.m 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #import "SampleFileInfo.h"
  2. #import "SVGKSourceLocalFile.h"
  3. #import "SVGKSourceURL.h"
  4. @interface SampleFileInfo ()
  5. @property(nonatomic,strong) NSString* originalFilename;
  6. @property(nonatomic,strong) NSURL* originalURL;
  7. @end
  8. @implementation SampleFileInfo
  9. +(SampleFileInfo*) sampleFileInfoWithFilename:(NSString*) f
  10. {
  11. return [self sampleFileInfoWithFilename:f URL:nil name:f];
  12. }
  13. +(SampleFileInfo*) sampleFileInfoWithURL:(NSURL*) s
  14. {
  15. return [self sampleFileInfoWithFilename:nil URL:s name:[s relativeString]];
  16. }
  17. +(SampleFileInfo*) sampleFileInfoWithFilename:(NSString*) f URL:(NSURL*) s
  18. {
  19. return [self sampleFileInfoWithFilename:f URL:s name:(f!=nil) ? f : [s relativeString]];
  20. }
  21. +(SampleFileInfo*) sampleFileInfoWithFilename:(NSString*) f URL:(NSURL*) s name:(NSString*) n
  22. {
  23. SampleFileInfo* value = [SampleFileInfo new];
  24. value.originalFilename = f;
  25. value.originalURL = s;
  26. value.name = n;
  27. return value;
  28. }
  29. -(SVGKSource *)source
  30. {
  31. if( self.originalFilename != nil )
  32. return [self sourceFromLocalFile];
  33. else if( self.originalURL != nil )
  34. return [self sourceFromWeb];
  35. else
  36. {
  37. // D(false, @"Cannot return an SVGKSource; no valid filename nor url");
  38. return nil;
  39. }
  40. }
  41. -(SVGKSource *)sourceFromLocalFile
  42. {
  43. return [SVGKSourceLocalFile internalSourceAnywhereInBundleUsingName:self.originalFilename];
  44. }
  45. -(SVGKSource *)sourceFromWeb
  46. {
  47. return [SVGKSourceURL sourceFromURL:self.originalURL];
  48. }
  49. -(NSString *)savedBitmapFilename
  50. {
  51. if( self.originalFilename != nil )
  52. {
  53. return [self.originalFilename stringByDeletingPathExtension];
  54. }
  55. else if( self.originalURL != nil )
  56. {
  57. return [[self.originalURL relativeString] stringByDeletingPathExtension];
  58. }
  59. else
  60. return nil;
  61. }
  62. @end