code: 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;
      }
docs: compare parameter with whished parameter class and convert parameter to whished type
  
  @param parameter parameter to compare
  @param trgClass whished type of the parameter
  @return converted parameter (to whished type) or null