public static boolean validOptions(String options[][], 
                                       DocErrorReporter reporter) {
        boolean foundDestDirOption = false;
        boolean foundApiHostOption = false;
        boolean foundTitleOption = false;
        boolean foundDescriptionOption = false;

        for (int i = 0; i < options.length; i++) {
            String[] opt = options[i];
            switch(opt[0].toLowerCase()) {
                case OPT_DEST_DIR:
                    if(foundDestDirOption) {
                        reporter.printError("Only one " + OPT_DEST_DIR + " option allowed.");
                        return false;
                    } else {
                        foundDestDirOption = true;
                    }
                    break;
                case OPT_API_HOST:
                    if(foundApiHostOption) {
                        reporter.printError("Only one " + OPT_API_HOST + " option allowed.");
                        return false;
                    } else {
                        foundApiHostOption = true;
                    }
                    break;
                case OPT_DOC_TITLE:
                    if(foundTitleOption) {
                        reporter.printError("Only one " + OPT_DOC_TITLE + " option allowed.");
                        return false;
                    } else {
                        foundTitleOption = true;
                    }
                    break;
                case OPT_DOC_DESCRIPTION:
                    if(foundDescriptionOption) {
                        reporter.printError("Only one " + OPT_DOC_DESCRIPTION + " option allowed.");
                        return false;
                    } else {
                        foundDescriptionOption = true;
                    }
                    break;
            }
        }
        return true;
    }