code: protected CliModeObject requireMode(String id, Object annotationContainer) {
  
      CliModeObject modeObject = getMode(id);
      if (modeObject == null) {
        CliStyleHandling handling = getCliStyle().modeUndefined();
        if (handling != CliStyleHandling.OK) {
          handling.handle(LOG, new CliModeUndefinedException(id, annotationContainer));
        }
        CliModeContainer modeContainer = new CliModeContainer(id);
        addMode(modeContainer);
        modeObject = modeContainer;
      }
      return modeObject;
    }
docs: This method is like {@link #getMode(String)} but also {@link net.sf.mmm.util.cli.api.CliStyle#modeUndefined()
  handles} the case that a {@link net.sf.mmm.util.cli.api.CliMode} may be undefined.
  
  @param id is the {@link net.sf.mmm.util.cli.api.CliMode#id() ID} of the requested
  {@link net.sf.mmm.util.cli.api.CliMode}.
  @param annotationContainer is the {@link CliArgumentContainer} or {@link CliOptionContainer}.
  @return the requested {@link CliModeObject}.