private void fillFlag(Flag annotation, Parameter parameter)
    {
        String shortName = annotation.name();
        String longName = annotation.longName();
        if (shortName.isEmpty() && longName.isEmpty())
        {
            LabelProvider labelProvider = parameter.getProperty(Properties.LABEL_PROVIDER);
            longName = labelProvider.getLabel();
            shortName = longName.substring(0, 1);
        }
        parameter.offer(Properties.FLAG_LONGNAME, longName);
        parameter.offer(Properties.FLAG_NAME, shortName);
        parameter.offer(Properties.PARSER, new FlagParser(parameter));
        parameter.offer(Properties.REQUIREMENT, Requirement.OPTIONAL);
        parameter.offer(Properties.DEFAULT_PROVIDER, FlagReader.class);
        parameter.offer(Properties.VALUE_READER, new FlagReader(shortName, longName));
    }