code: public void prepareClassOptions(TaskMonitor monitor,
              ObjectRepository repository) {
          this.classOptionNamesToPreparedObjects = null;
          Option[] optionArray = getOptions().getOptionArray();
          for (Option option : optionArray) {
              if (option instanceof ClassOption) {
                  ClassOption classOption = (ClassOption) option;
                  monitor.setCurrentActivity("Materializing option "
                          + classOption.getName() + "...", -1.0);
                  Object optionObj = classOption.materializeObject(monitor,
                          repository);
                  if (monitor.taskShouldAbort()) {
                      return;
                  }
                  if (optionObj instanceof OptionHandler) {
                      monitor.setCurrentActivity("Preparing option "
                              + classOption.getName() + "...", -1.0);
                      ((OptionHandler) optionObj).prepareForUse(monitor,
                              repository);
                      if (monitor.taskShouldAbort()) {
                          return;
                      }
                  }
                  if (this.classOptionNamesToPreparedObjects == null) {
                      this.classOptionNamesToPreparedObjects = new HashMap<String, Object>();
                  }
                  this.classOptionNamesToPreparedObjects.put(option.getName(),
                          optionObj);
              }
          }
      }
docs: Prepares the options of this class.
  
  @param monitor the TaskMonitor to use
  @param repository  the ObjectRepository to use