package gw.api.upgrade uses java.math.BigInteger uses java.math.BigDecimal uses java.util.Date uses java.util.Collection uses java.util.Arrays uses gw.config.CommonServices uses gw.api.financials.CurrencyAmount class Coercions { static function makeLongFrom(value : Object) : java.lang.Long { return CommonServices.getCoercionManager().makeLongFrom(value) } static function makeDoubleFrom(value : Object) : java.lang.Double { return CommonServices.getCoercionManager().makeDoubleFrom(value) } static function makeBooleanFrom(value : Object) : java.lang.Boolean { return CommonServices.getCoercionManager().makeBooleanFrom(value) } static function makeByteFrom(value : Object) : java.lang.Byte { return CommonServices.getCoercionManager().makeIntegerFrom(value).byteValue() } static function makeCharFrom(value : Object) : java.lang.Character { if (value typeis java.lang.CharSequence && value.length() == 1) { return value.charAt(0) } else { var aDouble = CommonServices.getCoercionManager().makeDoubleFrom(value) return aDouble.intValue() as char } } static function makeIntFrom(value : Object) : java.lang.Integer { return CommonServices.getCoercionManager().makeIntegerFrom(value) } static function makeShortFrom(value : Object) : java.lang.Short { return CommonServices.getCoercionManager().makeIntegerFrom(value).shortValue() } static function makeFloatFrom(value : Object) : java.lang.Float { return CommonServices.getCoercionManager().makeFloatFrom(value) } static function makeCurrencyAmountFrom(value : Object) : CurrencyAmount { return value == null ? null : new CurrencyAmount(CommonServices.getCoercionManager().makeBigDecimalFrom(value)) } static function makePLongFrom(value : Object) : long { return value == null ? 0 as long : makeLongFrom(value) } static function makePDoubleFrom(value : Object) : double { return value == null ? 0 as double : makeDoubleFrom(value) } static function makePBooleanFrom(value : Object) : boolean { return value == null ? false : makeBooleanFrom(value) } static function makePByteFrom(value : Object) : byte { return value == null ? 0 as byte : makeByteFrom(value) } static function makePCharFrom(value : Object) : char { return value == null ? 0 as char : makeCharFrom(value) } static function makePIntFrom(value : Object) : int { return value == null ? 0 as int : makeIntFrom(value) } static function makePShortFrom(value : Object) : short { return value == null ? 0 as short : makeShortFrom(value) } static function makePFloatFrom(value : Object) : float { return value == null ? 0 as float : makeFloatFrom(value) } static function makeBigDecimalFrom(value : Object) : BigDecimal { return CommonServices.getCoercionManager().makeBigDecimalFrom(value); } static function makeBigIntegerFrom(value : Object) : BigInteger { return CommonServices.getCoercionManager().makeBigIntegerFrom(value) } static function makeDateFrom(value : Object) : Date { return CommonServices.getCoercionManager().makeDateFrom(value) } static function makePIntArray(collection : Collection) : int[] { if (collection == null) { return null } var arr = new int[collection.size()] for (val in collection index i) { arr[i] = makePIntFrom(val) } return arr } static function makePBooleanArray(collection : Collection) : boolean[] { if (collection == null) { return null } var arr = new boolean[collection.size()] for (val in collection index i) { arr[i] = makePBooleanFrom(val) } return arr } static function makePByteArray(collection : Collection) : byte[] { if (collection == null) { return null } var arr = new byte[collection.size()] for (val in collection index i) { arr[i] = makePByteFrom(val) } return arr } static function makePCharArray(collection : Collection) : char[] { if (collection == null) { return null } var arr = new char[collection.size()] for (val in collection index i) { arr[i] = makePCharFrom(val) } return arr } static function makePDoubleArray(collection : Collection) : double[] { if (collection == null) { return null } var arr = new double[collection.size()] for (val in collection index i) { arr[i] = makePDoubleFrom(val) } return arr } static function makePFloatArray(collection : Collection) : float[] { if (collection == null) { return null } var arr = new float[collection.size()] for (val in collection index i) { arr[i] = makePFloatFrom(val) } return arr } static function makePLongArray(collection : Collection) : long[] { if (collection == null) { return null } var arr = new long[collection.size()] for (val in collection index i) { arr[i] = makePLongFrom(val) } return arr } static function makePShortArray(collection : Collection) : short[] { if (collection == null) { return null } var arr = new short[collection.size()] for (val in collection index i) { arr[i] = makePShortFrom(val) } return arr } static reified function makeEntityQuery(value : Object[]) : T { return com.guidewire.pl.system.gosu.coercer.ArrayToEntityQueryCoercer.instance().coerceValue(T, value) as T } static reified function makeArray(value : Collection) : T[] { if (value == null) { return null } var returnArray = new T[value.size()] for (val in value index i) { returnArray[i] = CommonServices.getCoercionManager().convertValue(val, T) as T } return returnArray } static function makeEncryptedString(value : String) : EncryptedString { return new EncryptedString(value) } static function makeStringFrom(value : Object) : String { return CommonServices.getCoercionManager().makeStringFrom(value) } static reified function cast(value : Object) : T { return CommonServices.getCoercionManager().convertValue(value, T) as T } static reified function makeQueryFrom(queryBeanResult : gw.api.database.IQueryBeanResult) : T { return queryBeanResult == null ? null : com.guidewire.pl.system.gosu.coercer.QueryBeanResultToQueryCoercer.instance().coerceValue(T, queryBeanResult) as T } }