code: public static OptionsI getOptions(final String globalPrefix,
                                      final String appPrefix,
                                      final String optionsFile,
                                      final String outerTagName) throws OptionsException {
      try {
        Object o = Class.forName(envclass).newInstance();
  
        if (o == null) {
          throw new OptionsException("Class " + envclass + " not found");
        }
  
        if (!(o instanceof OptionsI)) {
          throw new OptionsException("Class " + envclass +
                                    " is not a subclass of " +
                                    OptionsI.class.getName());
        }
  
        OptionsI options = (OptionsI)o;
  
        options.init(globalPrefix, appPrefix, optionsFile, outerTagName);
  
        return options;
      } catch (OptionsException ce) {
        throw ce;
      } catch (Throwable t) {
        throw new OptionsException(t);
      }
    }
docs: Obtain and initialise an options object.
  
  @param globalPrefix
  @param appPrefix
  @param optionsFile - path to file e.g. /properties/calendar/options.xml
  @param outerTagName - surrounding tag in options file e.g. bedework-options
  @return CalOptionsI
  @throws OptionsException