code: private void checkRowReader(ClassDescriptorDef classDef, String checkLevel) throws ConstraintException
      {
          if (!CHECKLEVEL_STRICT.equals(checkLevel))
          {
              return;
          }
          
          String rowReaderName  = classDef.getProperty(PropertyHelper.OJB_PROPERTY_ROW_READER);
  
          if (rowReaderName == null)
          {
              return;
          }
  
          try
          {
              InheritanceHelper helper = new InheritanceHelper();
  
              if (!helper.isSameOrSubTypeOf(rowReaderName, ROW_READER_INTERFACE))
              {
                  throw new ConstraintException("The class "+rowReaderName+" specified as row-reader of class "+classDef.getName()+" does not implement the interface "+ROW_READER_INTERFACE);
              }
          }
          catch (ClassNotFoundException ex)
          {
              throw new ConstraintException("Could not find the class "+ex.getMessage()+" on the classpath while checking the row-reader class "+rowReaderName+" of class "+classDef.getName());
          }
      }
docs: Checks the given class descriptor for correct row-reader setting.
  
  @param classDef   The class descriptor
  @param checkLevel The current check level (this constraint is only checked in strict)
  @exception ConstraintException If the constraint has been violated