docs: private void ensureConversion(FieldDescriptorDef fieldDef, String checkLevel) throws ConstraintException
      {
          if (CHECKLEVEL_NONE.equals(checkLevel))
          {
              return;
          }
  
          // we issue a warning if we encounter a field with a java.util.Date java type without a conversion
          if ("java.util.Date".equals(fieldDef.getProperty(PropertyHelper.OJB_PROPERTY_JAVA_TYPE)) &&
              !fieldDef.hasProperty(PropertyHelper.OJB_PROPERTY_CONVERSION))
          {
              LogHelper.warn(true,
                             FieldDescriptorConstraints.class,
                             "ensureConversion",
                             "The field "+fieldDef.getName()+" in class "+fieldDef.getOwner().getName()+
                                 " of type java.util.Date is directly mapped to jdbc-type "+
                                 fieldDef.getProperty(PropertyHelper.OJB_PROPERTY_JDBC_TYPE)+
                                 ". However, most JDBC drivers can't handle java.util.Date directly so you might want to "+
                                 " use a conversion for converting it to a JDBC datatype like TIMESTAMP.");
          }
  
          String conversionClass = fieldDef.getProperty(PropertyHelper.OJB_PROPERTY_CONVERSION);
  
          if (((conversionClass == null) || (conversionClass.length() == 0)) &&
              fieldDef.hasProperty(PropertyHelper.OJB_PROPERTY_DEFAULT_CONVERSION) &&
              fieldDef.getProperty(PropertyHelper.OJB_PROPERTY_DEFAULT_JDBC_TYPE).equals(fieldDef.getProperty(PropertyHelper.OJB_PROPERTY_JDBC_TYPE)))
          {
              conversionClass = fieldDef.getProperty(PropertyHelper.OJB_PROPERTY_DEFAULT_CONVERSION);
              fieldDef.setProperty(PropertyHelper.OJB_PROPERTY_CONVERSION, conversionClass);
          }
          // now checking
          if (CHECKLEVEL_STRICT.equals(checkLevel) && (conversionClass != null) && (conversionClass.length() > 0))
          {
              InheritanceHelper helper = new InheritanceHelper();
  
              try
              {
                  if (!helper.isSameOrSubTypeOf(conversionClass, CONVERSION_INTERFACE))
                  {
                      throw new ConstraintException("The conversion class specified for field "+fieldDef.getName()+" in class "+fieldDef.getOwner().getName()+" does not implement the necessary interface "+CONVERSION_INTERFACE);
                  }
              }
              catch (ClassNotFoundException ex)
              {
                  throw new ConstraintException("The class "+ex.getMessage()+" hasn't been found on the classpath while checking the conversion class specified for field "+fieldDef.getName()+" in class "+fieldDef.getOwner().getName());
              }
          }
  }