package org.atdl4j.data.converter; import java.math.BigDecimal; import java.math.BigInteger; import org.atdl4j.data.ParameterTypeConverter; import org.atdl4j.fixatdl.core.BooleanT; public class BooleanConverter extends AbstractTypeConverter<Boolean> { public static final String BOOLEAN_FALSE = "N"; public static final String BOOLEAN_TRUE = "Y"; public BooleanConverter(BooleanT aParameter) { super( aParameter ); } public BooleanConverter(ParameterTypeConverter<?> aParameterTypeConverter) { super( aParameterTypeConverter ); } /* (non-Javadoc) * @see org.atdl4j.data.ControlTypeConverter#convertControlValueToControlComparable(java.lang.Object) */ public Boolean convertControlValueToControlComparable(Object aValue) { if ( aValue == null ) return null; if ( aValue instanceof Boolean ) { return (Boolean) aValue; } else if ( aValue instanceof String ) { String str = (String) aValue; if ( str.equalsIgnoreCase( "true" ) || str.equals( "1" ) || str.equals( BooleanConverter.BOOLEAN_TRUE ) ) { return new Boolean( true ); } else if ( str.equalsIgnoreCase( "false" ) || str.equals( "0" ) || str.equals( BooleanConverter.BOOLEAN_FALSE ) ) { return new Boolean( false ); } else if ( str.equals( "" ) ) { return null; } else { return new Boolean( false ); } } else if ( aValue instanceof BigDecimal || aValue instanceof BigInteger ) { BigDecimal num = (BigDecimal) aValue; if ( num.intValue() == 1 ) { return new Boolean( true ); } else if ( num.intValue() == 0 ) { return new Boolean( false ); } else { return new Boolean( false ); } } else { return null; } } /* No conversion applicable for this type. Returns aValue. * @see org.atdl4j.data.ControlTypeConverter#convertControlValueToParameterValue(java.lang.Object) */ public Object convertControlValueToParameterValue(Object aValue) { // -- aDatatypeIfNull=DATATYPE_BOOLEAN -- return DatatypeConverter.convertValueToDatatype( aValue, getParameterDatatype( Boolean.class ) ); } /* No conversion applicable for this type. Returns aValue. * @see org.atdl4j.data.ControlTypeConverter#convertParameterValueToControlValue(java.lang.Object) */ @Override public Boolean convertParameterValueToControlValue(Object aValue) { return DatatypeConverter.convertValueToBooleanDatatype( aValue ); } /* (non-Javadoc) * @see org.atdl4j.data.ControlTypeConverter#convertStringToControlValue(java.lang.String) */ @Override public Boolean convertStringToControlValue(String aString) { return convertControlValueToControlComparable( aString ); } /* (non-Javadoc) * @see org.atdl4j.data.ParameterTypeConverter#convertFixWireValueToParameterValue(java.lang.String) */ @Override public Boolean convertFixWireValueToParameterValue(String aFixWireValue) { return convertStringToParameterValue( aFixWireValue ); } /** * Supports either FixWireValue or ParameterString values * @param aValue * @return */ protected Boolean convertStringToParameterValue(String aValue) { if ( aValue != null ) { String str = (String) aValue; if ( str.equalsIgnoreCase( "true" ) || str.equals( "1" ) || str.equals( BOOLEAN_TRUE ) ) { return new Boolean( true ); } else if ( str.equalsIgnoreCase( "false" ) || str.equals( "0" ) || str.equals( BOOLEAN_FALSE ) ) { return new Boolean( false ); } else if ( str.equals( "" ) ) { return null; } else { return new Boolean( false ); } } else { return null; } } /* (non-Javadoc) * @see org.atdl4j.data.ParameterTypeConverter#convertParameterStringToParameterValue(java.lang.String) */ @Override public Boolean convertParameterStringToParameterValue(String aParameterString) { return convertStringToParameterValue( aParameterString ); } /* (non-Javadoc) * @see org.atdl4j.data.ParameterTypeConverter#convertParameterValueToFixWireValue(java.lang.Object) */ @Override public String convertParameterValueToFixWireValue(Object aParameterValue) { Boolean bool = convertParameterValueToParameterComparable( aParameterValue ); if ( bool != null ) { return bool.booleanValue() ? BOOLEAN_TRUE : BOOLEAN_FALSE; } else return null; // 2/1/2010 John Shields deleted // trueWireValue and falseWireValue are deprecated /* * if (bool != null) { if (bool.booleanValue()) { if (booleanT != null && * booleanT.getTrueWireValue() != null) return * booleanT.getTrueWireValue(); else return BOOLEAN_TRUE; } else { if * (booleanT != null && booleanT.getFalseWireValue() != null) return * booleanT.getFalseWireValue(); else return BOOLEAN_FALSE; } } else { * return null; } */ } /* (non-Javadoc) * @see org.atdl4j.data.ParameterTypeConverter#convertParameterValueToParameterComparable(java.lang.Object) */ @Override public Boolean convertParameterValueToParameterComparable(Object aParameterValue) { if ( aParameterValue == null ) return null; if ( aParameterValue instanceof Boolean ) { return (Boolean) aParameterValue; } else if ( aParameterValue instanceof String ) { String str = (String) aParameterValue; if ( str.equalsIgnoreCase( "true" ) || str.equals( "1" ) || str.equals( BooleanConverter.BOOLEAN_TRUE ) ) { return new Boolean( true ); } else if ( str.equalsIgnoreCase( "false" ) || str.equals( "0" ) || str.equals( BooleanConverter.BOOLEAN_FALSE ) ) { return new Boolean( false ); } else if ( str.equals( "" ) ) { return null; } else { return new Boolean( false ); } } else if ( aParameterValue instanceof BigDecimal || aParameterValue instanceof BigInteger ) { BigDecimal num = (BigDecimal) aParameterValue; if ( num.intValue() == 1 ) { return new Boolean( true ); } else if ( num.intValue() == 0 ) { return new Boolean( false ); } else { return new Boolean( false ); } } else { return null; } } }