remove clone left over and fixed alias resolving.
This commit is contained in:
parent
5076d2be55
commit
5d95084252
|
@ -49,6 +49,7 @@ public class UnitXCTypeCompoundExponentBuilder extends AbstractUnitXCBuilder<Uni
|
|||
super(parent,new Object(), (p,v) -> {});
|
||||
this.unitGroupId = unitGroupId;
|
||||
this.exponent = exponent;
|
||||
UnitXCGroup model = parent.getValue();
|
||||
parent.getValue().setTypeGenerator(new UnitXCTypeGenerator() {
|
||||
|
||||
UnitXCGroup getGroup() {
|
||||
|
@ -82,8 +83,24 @@ public class UnitXCTypeCompoundExponentBuilder extends AbstractUnitXCBuilder<Uni
|
|||
};
|
||||
}
|
||||
|
||||
public UnitXCType getUnitTypeAlias(String id) {
|
||||
for (UnitXCType type:model.getUnitTypes()) {
|
||||
if (type.getId().equals(id)) {
|
||||
return type;
|
||||
}
|
||||
if (type.getName().equals(id)) {
|
||||
return type;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public UnitXCType getUnitType(String id) {
|
||||
UnitXCType al = getUnitTypeAlias(id);
|
||||
if (al != null) {
|
||||
return al;
|
||||
}
|
||||
if (!id.endsWith(unitIdPostfix)) {
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -50,7 +50,7 @@ public class UnitXConverter {
|
|||
}
|
||||
|
||||
private UnitXCType getUnitType(String id) {
|
||||
return unitManager.getUnitType(id);
|
||||
return Validate.notNull(unitManager.getUnitType(id),"Could not resolve unit type for id; '"+id+"'");
|
||||
}
|
||||
|
||||
public double convert(double value, String fromTypeId, String toTypeId) {
|
||||
|
|
|
@ -66,6 +66,18 @@ public final class UnitXConverterEngine {
|
|||
}
|
||||
|
||||
public UnitXConverterResult convertStepped(BigDecimal valueConvert2,UnitXCType fromType,UnitXCType toType, Map<String,UnitXConverterParameterValue> parameters) {
|
||||
Validate.notNull(valueConvert2,"Can't convert null to number");
|
||||
Validate.notNull(fromType,"Can't convert from null unit type");
|
||||
Validate.notNull(toType,"Can't convert to null unit type");
|
||||
|
||||
|
||||
if (fromType.getAliasOfType() != null) {
|
||||
fromType = Validate.notNull(manager.getUnitType(fromType.getAliasOfType()),"Coultn't resolve alias id: "+fromType.getAliasOfType()+" for: "+fromType.getId());
|
||||
}
|
||||
if (toType.getAliasOfType() != null) {
|
||||
toType = Validate.notNull(manager.getUnitType(toType.getAliasOfType()),"Coultn't resolve alias id: "+toType.getAliasOfType()+" for: "+toType.getId());
|
||||
}
|
||||
|
||||
double valueConvert = valueConvert2.doubleValue();
|
||||
long startTime = System.currentTimeMillis();
|
||||
MathContext mathContext = MathContext.DECIMAL128;
|
||||
|
@ -178,7 +190,7 @@ public final class UnitXConverterEngine {
|
|||
step.runStep(this);
|
||||
long convertTime = System.currentTimeMillis()-startTime;
|
||||
|
||||
System.out.println("runStep: "+step+" res: "+step.getStepReasons());
|
||||
// System.out.println("runStep: "+step+" res: "+step.getStepReasons());
|
||||
|
||||
UnitXConverterResultStep resultStep = new UnitXConverterResultStep();
|
||||
resultStep.setStartValue(valueOld);
|
||||
|
|
|
@ -52,13 +52,6 @@ public class UnitXConverterStepValueNamedParameter implements UnitXConverterStep
|
|||
return ctx.getNamedParameter(parameterName).valueRead(ctx);
|
||||
}
|
||||
|
||||
@Override
|
||||
public UnitXConverterStepValueRead clone() {
|
||||
UnitXConverterStepValueNamedParameter clone = new UnitXConverterStepValueNamedParameter();
|
||||
clone.setParameterName(getParameterName());
|
||||
return clone;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the parameterName
|
||||
*/
|
||||
|
|
|
@ -59,14 +59,6 @@ public class UnitXConverterStepValueNamedVariable implements UnitXConverterStepV
|
|||
ctx.getNamedVariable(variableName).valueWrite(ctx,value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public UnitXConverterStepValueReadWrite clone() {
|
||||
UnitXConverterStepValueNamedVariable clone = new UnitXConverterStepValueNamedVariable();
|
||||
clone.setValueType(getValueType());
|
||||
clone.setVariableName(getVariableName());
|
||||
return clone;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the variableName
|
||||
*/
|
||||
|
|
|
@ -31,9 +31,7 @@ import net.forwardfire.unitxc.model.step.UnitXConverterStepContext;
|
|||
* @author Willem Cazander
|
||||
* @version 1.0 Apr 1, 2016
|
||||
*/
|
||||
public interface UnitXConverterStepValueRead extends Cloneable {
|
||||
public interface UnitXConverterStepValueRead {
|
||||
|
||||
Object valueRead(UnitXConverterStepContext ctx);
|
||||
|
||||
UnitXConverterStepValueRead clone();
|
||||
}
|
||||
|
|
|
@ -34,6 +34,4 @@ import net.forwardfire.unitxc.model.step.UnitXConverterStepContext;
|
|||
public interface UnitXConverterStepValueReadWrite extends UnitXConverterStepValueRead {
|
||||
|
||||
void valueWrite(UnitXConverterStepContext ctx,Object value);
|
||||
|
||||
UnitXConverterStepValueReadWrite clone();
|
||||
}
|
||||
|
|
|
@ -57,11 +57,6 @@ public class UnitXConverterStepValueReferenceDouble implements UnitXConverterSte
|
|||
this.value = Double.class.cast(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public UnitXConverterStepValueReadWrite clone() {
|
||||
return new UnitXConverterStepValueReferenceDouble(getValue());
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the value
|
||||
*/
|
||||
|
|
|
@ -57,11 +57,6 @@ public class UnitXConverterStepValueReferenceDoubleFraction implements UnitXConv
|
|||
return (Double)(((Integer)numerator).doubleValue()/((Integer)denominator).doubleValue()); // FIXME
|
||||
}
|
||||
|
||||
@Override
|
||||
public UnitXConverterStepValueRead clone() {
|
||||
return new UnitXConverterStepValueReferenceDoubleFraction(getNumerator(),getDenominator());
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the numerator
|
||||
*/
|
||||
|
|
|
@ -57,11 +57,6 @@ public class UnitXConverterStepValueReferenceInteger implements UnitXConverterSt
|
|||
this.value = Integer.class.cast(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public UnitXConverterStepValueReadWrite clone() {
|
||||
return new UnitXConverterStepValueReferenceInteger(getValue());
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the value
|
||||
*/
|
||||
|
|
|
@ -57,11 +57,6 @@ public class UnitXConverterStepValueReferenceString implements UnitXConverterSte
|
|||
this.value = String.class.cast(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public UnitXConverterStepValueReadWrite clone() {
|
||||
return new UnitXConverterStepValueReferenceString(getValue());
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the value
|
||||
*/
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package net.forwardfire.unitxc;
|
||||
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
|
||||
|
@ -27,9 +28,9 @@ public class UnitXCManagerTest {
|
|||
assertNotNull(test.getUnitType(null));
|
||||
}
|
||||
|
||||
@Test(expected=NullPointerException.class)
|
||||
@Test
|
||||
public void testGetUnitTypeInvalid() {
|
||||
assertNotNull(test.getUnitType(getClass().getName()));
|
||||
assertNull(test.getUnitType(getClass().getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
Loading…
Reference in a new issue