1 /**
2 * Copyright 2009 Timothy Johnston Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
3 * file except in compliance with the License. You may obtain a copy of the License at
4 *
5 * http://www.apache.org/licenses/LICENSE-2.0
6 *
7 * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
8 * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
9 * specific language governing permissions and limitations under the License.
10 */
11
12 package com.timjohnstondev.unitconverter.model;
13
14 /**
15 * This is a unit of measure with its related conversion formula to another unit.
16 */
17 public class ConversionFormula implements Conversion
18 {
19 private String unitName;
20 private String unitSymbol;
21 private String toUnitSymbol;
22 private String formula;
23
24 /**
25 * Constructs a {@code ConversionFormula} setting its name, symbol, to-symbol and formula.
26 *
27 * @param newUnitName the name of the unit in unabbreviated words
28 * @param newUnitSymbol the symbol of the unit
29 * @param newToUnitSymbol the symbol of the unit to be converted to
30 * @param newFormula the formula to perform the conversion
31 */
32 public ConversionFormula(final String newUnitName, final String newUnitSymbol, final String newToUnitSymbol,
33 final String newFormula)
34 {
35 unitName = newUnitName;
36 unitSymbol = newUnitSymbol;
37 toUnitSymbol = newToUnitSymbol;
38 formula = newFormula;
39 }
40
41 @Override
42 public final String getUnitName()
43 {
44 return unitName;
45 }
46
47 /**
48 * Returns the raw text symbol for the unit being converted to.
49 *
50 * @return the unit symbol
51 */
52 public final String getToUnitSymbol()
53 {
54 return toUnitSymbol;
55 }
56
57 @Override
58 public final String getUnitSymbol()
59 {
60 return unitSymbol;
61 }
62
63 @Override
64 public final String getFormattedUnitSymbol()
65 {
66 return unitSymbol;
67 }
68
69 @Override
70 public final String getConversion()
71 {
72 return formula;
73 }
74
75 @Override
76 public final void setUnitSeparator(final String symbol)
77 {
78 unitSymbol = unitSymbol.replaceAll("\\*", symbol);
79 toUnitSymbol = toUnitSymbol.replaceAll("\\*", symbol);
80 }
81 }