Implement length formatter in terms of NSMeasurementFormatter

This commit is contained in:
Gregory John Casamento 2019-10-24 14:18:47 -04:00
parent de73db605c
commit ea21e48218
4 changed files with 65 additions and 9 deletions

View file

@ -70,7 +70,7 @@ typedef NSInteger NSLengthFormatterUnit;
- (NSString *) unitStringFromMeters: (double)numberInMeters usedUnit: (NSLengthFormatterUnit *)unit;
- (BOOL)getObjectValue: (id*)obj forString: (NSString *)string errorDescription: (NSString **)error;
- (BOOL)getObjectValue: (id *)obj forString: (NSString *)string errorDescription: (NSString **)error;
@end

View file

@ -1,7 +1,7 @@
/* Definition of class NSUnit
Copyright (C) 2019 Free Software Foundation, Inc.
By: heron
By: Gregory John Casamento <greg.casamento@gmail.com>
Date: Mon Sep 30 15:58:21 EDT 2019
This file is part of the GNUstep Library.
@ -58,7 +58,6 @@ extern "C" {
NSString *_symbol;
}
+ (instancetype)new;
- (instancetype)init;
- (instancetype)initWithSymbol:(NSString *) symbol;
- (NSString *) symbol;

View file

@ -34,8 +34,9 @@
self = [super init];
if(self != nil)
{
_startDate = nil;
_startDate = [NSDate date];
_duration = 0.0;
RETAIN(_startDate);
}
return self;
}

View file

@ -24,6 +24,9 @@
*/
#include <Foundation/NSLengthFormatter.h>
#include <Foundation/NSUnit.h>
#include <Foundation/NSMeasurement.h>
#include <Foundation/NSMeasurementFormatter.h>
@implementation NSLengthFormatter
@ -77,25 +80,78 @@
- (NSString *) stringFromValue: (double)value unit: (NSLengthFormatterUnit)unit
{
return nil;
NSUnit *u = nil;
NSMeasurement *m = nil;
NSMeasurementFormatter *mf = nil;
switch(unit)
{
case NSLengthFormatterUnitMillimeter:
u = [NSUnitLength millimeters];
break;
case NSLengthFormatterUnitCentimeter:
u = [NSUnitLength centimeters];
break;
case NSLengthFormatterUnitMeter:
u = [NSUnitLength meters];
break;
case NSLengthFormatterUnitKilometer:
u = [NSUnitLength kilometers];
break;
case NSLengthFormatterUnitInch:
u = [NSUnitLength inches];
break;
case NSLengthFormatterUnitFoot:
u = [NSUnitLength feet];
break;
case NSLengthFormatterUnitYard:
u = [NSUnitLength yards];
break;
case NSLengthFormatterUnitMile:
u = [NSUnitLength miles];
break;
}
m = [[NSMeasurement alloc] initWithDoubleValue: value
unit: u];
AUTORELEASE(m);
mf = [[NSMeasurementFormatter alloc] init];
AUTORELEASE(mf);
[mf setUnitStyle: _unitStyle];
[mf setNumberFormatter: _numberFormatter];
return [mf stringFromMeasurement: m];
}
- (NSString *) stringFromMeters: (double)numberInMeters
{
return nil;
NSUnit *u = nil;
NSMeasurement *m = nil;
NSMeasurementFormatter *mf = nil;
u = [NSUnitLength meters];
m = [[NSMeasurement alloc] initWithDoubleValue: numberInMeters
unit: u];
AUTORELEASE(m);
mf = [[NSMeasurementFormatter alloc] init];
AUTORELEASE(mf);
[mf setUnitStyle: _unitStyle];
[mf setNumberFormatter: _numberFormatter];
return [mf stringFromMeasurement: m];
}
- (NSString *) unitStringFromValue: (double)value unit: (NSLengthFormatterUnit)unit
{
return nil;
return [self stringFromValue: value unit: unit];
}
- (NSString *) unitStringFromMeters: (double)numberInMeters usedUnit: (NSLengthFormatterUnit *)unit
{
return nil;
return [self stringFromValue: numberInMeters unit: NSLengthFormatterUnitMeter];
}
- (BOOL)getObjectValue: (id*)obj forString: (NSString *)string errorDescription: (NSString **)error
- (BOOL)getObjectValue: (id *)obj forString: (NSString *)string errorDescription: (NSString **)error
{
return NO;
}