X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altoslib%2FAltosUnits.java;h=7ca2f03cda27a1662f78eec13f7d9814dab5008d;hp=b8b3254cc4e80394e6a996d51f622bf46b58ddda;hb=85013045ca505096064aaf45c312b158d0263d2a;hpb=2120d362cefceba69e75996b6391d9558978c01d diff --git a/altoslib/AltosUnits.java b/altoslib/AltosUnits.java index b8b3254c..7ca2f03c 100644 --- a/altoslib/AltosUnits.java +++ b/altoslib/AltosUnits.java @@ -15,47 +15,105 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_1; +package org.altusmetrum.altoslib_7; + +import java.text.*; public abstract class AltosUnits { - public abstract double value(double v); + public abstract double value(double v, boolean imperial_units); + + public abstract double inverse(double v, boolean imperial_units); + + public abstract String show_units(boolean imperial_units); + + public abstract String say_units(boolean imperial_units); + + public abstract int show_fraction(int width, boolean imperial_units); + + public double parse_locale(String s, boolean imperial_units) throws ParseException { + double v = AltosParse.parse_double_locale(s); + return inverse(v, imperial_units); + } + + public double parse_net(String s, boolean imperial_units) throws ParseException { + double v = AltosParse.parse_double_net(s); + return inverse(v, imperial_units); + } + + public double parse_locale(String s) throws ParseException { + return parse_locale(s, AltosConvert.imperial_units); + } + + public double parse_net(String s) throws ParseException { + return parse_net(s, AltosConvert.imperial_units); + } + + public double value(double v) { + return value(v, AltosConvert.imperial_units); + } - public abstract String show_units(); + public double inverse(double v) { + return inverse(v, AltosConvert.imperial_units); + } - public abstract String say_units(); + public String show_units() { + return show_units(AltosConvert.imperial_units); + } - public abstract int show_fraction(int width); + public String say_units() { + return say_units(AltosConvert.imperial_units); + } - int say_fraction() { + public int show_fraction(int width) { + return show_fraction(width, AltosConvert.imperial_units); + } + + int say_fraction(boolean imperial_units) { return 0; } - private String show_format(int width) { - return String.format("%%%d.%df %s", width, show_fraction(width), show_units()); + private String show_format(int width, boolean imperial_units) { + return String.format("%%%d.%df %s", width, show_fraction(width, imperial_units), show_units(imperial_units)); + } + + private String say_format(boolean imperial_units) { + return String.format("%%1.%df", say_fraction(imperial_units)); } - private String say_format() { - return String.format("%%1.%df", say_fraction()); + private String say_units_format(boolean imperial_units) { + return String.format("%%1.%df %s", say_fraction(imperial_units), say_units(imperial_units)); } - private String say_units_format() { - return String.format("%%1.%df %s", say_fraction(), say_units()); + public String graph_format(int width, boolean imperial_units) { + return String.format(String.format("%%%d.%df", width, show_fraction(width, imperial_units)), 0.0); } public String graph_format(int width) { - return String.format(String.format("%%%d.%df", width, show_fraction(width)), 0.0); + return graph_format(width, AltosConvert.imperial_units); + } + + public String show(int width, double v, boolean imperial_units) { + return String.format(show_format(width, imperial_units), value(v, imperial_units)); } public String show(int width, double v) { - return String.format(show_format(width), value(v)); + return show(width, v, AltosConvert.imperial_units); + } + + public String say(double v, boolean imperial_units) { + return String.format(say_format(imperial_units), value(v, imperial_units)); } public String say(double v) { - return String.format(say_format(), value(v)); + return say(v, AltosConvert.imperial_units); + } + + public String say_units(double v, boolean imperial_units) { + return String.format(say_units_format(imperial_units), value(v, imperial_units)); } public String say_units(double v) { - return String.format(say_units_format(), value(v)); + return say_units(v, AltosConvert.imperial_units); } -} \ No newline at end of file +}