private static Object compareClasses ( Object parameter , Class trgClass ) { Class srcClass = parameter . getClass ( ) ; trgClass = primitiveToWrapperType ( trgClass ) ; try { if ( parameter instanceof ObjectWrap ) parameter = ( ( ObjectWrap ) parameter ) . getEmbededObject ( ) ; // parameter is already ok if ( srcClass == trgClass ) return parameter ; else if ( instaceOf ( srcClass , trgClass ) ) { return parameter ; } else if ( trgClass . getName ( ) . equals ( "java.lang.String" ) ) { return Caster . toString ( parameter ) ; } else if ( trgClass . getName ( ) . equals ( "java.lang.Boolean" ) ) { return Caster . toBoolean ( parameter ) ; } else if ( trgClass . getName ( ) . equals ( "java.lang.Byte" ) ) { return new Byte ( Caster . toString ( parameter ) ) ; } else if ( trgClass . getName ( ) . equals ( "java.lang.Character" ) ) { String str = Caster . toString ( parameter ) ; if ( str . length ( ) == 1 ) return new Character ( str . toCharArray ( ) [ 0 ] ) ; return null ; } else if ( trgClass . getName ( ) . equals ( "java.lang.Short" ) ) { return Short . valueOf ( ( short ) Caster . toIntValue ( parameter ) ) ; } else if ( trgClass . getName ( ) . equals ( "java.lang.Integer" ) ) { return Integer . valueOf ( Caster . toIntValue ( parameter ) ) ; } else if ( trgClass . getName ( ) . equals ( "java.lang.Long" ) ) { return Long . valueOf ( ( long ) Caster . toDoubleValue ( parameter ) ) ; } else if ( trgClass . getName ( ) . equals ( "java.lang.Float" ) ) { return Float . valueOf ( ( float ) Caster . toDoubleValue ( parameter ) ) ; } else if ( trgClass . getName ( ) . equals ( "java.lang.Double" ) ) { return Caster . toDouble ( parameter ) ; } } catch ( PageException e ) { return null ; } return null ; }
compare parameter with whished parameter class and convert parameter to whished type