private void processOptions(){
        longOptions = new HashMap<String,CmdLnOption>();
        shortOptions= new HashMap<Character,CmdLnOption>();
        for (CmdLnOption option: options){
            option.setImmutable();
            for (String name: option.getLongNames()){
                if (longOptions.containsKey(name)){
                    throw new IllegalArgumentException("More than one long option has the name: '" + name + "'");
                }
                longOptions.put(name, option);
            }
            for (Character c: option.getShortNames()){
                if (shortOptions.containsKey(c)){
                    throw new IllegalArgumentException("More than one short option has the character: '" + c + "'");
                }
                shortOptions.put(c, option);
            }
        }
    }