class AntennaCLISettingsReader {

    ToolConfiguration.ConfigurationBuilder readBasicSettingsToToolConfigurationBuilder(XmlSettingsReader reader, MetaDataStoringProject project)
            throws IllegalArgumentException {
        ToolConfiguration.ConfigurationBuilder toolConfigBuilder = new ToolConfiguration.ConfigurationBuilder();

        // Simple strings
        readProjectStringSetting(reader, "artifactId", project::setProjectId);
        readAntennaStringSetting(reader, "antennaTargetDirectory", getDefaultAntennaTargetDirectory(project), toolConfigBuilder::setAntennaTargetDirectory);
        readAntennaStringSetting(reader, "scanDir", toolConfigBuilder::setScanDir);
        readAntennaStringSetting(reader, "productName", reader.getStringProperty("productName"), toolConfigBuilder::setProductName);
        readAntennaStringSetting(reader, "productFullname", reader.getStringProperty("productFullname"), toolConfigBuilder::setProductFullName);
        readAntennaStringSetting(reader, "version", "1.0", toolConfigBuilder::setVersion);
        readAntennaStringSetting(reader, "companyName", toolConfigBuilder::setCompanyName);
        readAntennaStringSetting(reader, "copyrightHoldersName", toolConfigBuilder::setCopyrightHoldersName);
        readAntennaStringSetting(reader, "copyrightNotice", toolConfigBuilder::setCopyrightNotice);
        readAntennaStringSetting(reader, "attributionDocumentNotes", toolConfigBuilder::setAttributionDocumentNotes);
        readAntennaStringSetting(reader, "encodingCharSet", toolConfigBuilder::setEncoding);
        readAntennaStringSetting(reader, "proxyHost", toolConfigBuilder::setProxyHost);

        readAntennaIntSetting(reader, "proxyPort", 0, toolConfigBuilder::setProxyPort);

        // Booleans
        readAntennaBooleanSetting(reader, "attachAll", false, toolConfigBuilder::setAttachAll);
        readAntennaBooleanSetting(reader, "skip", false, toolConfigBuilder::setSkipAntennaExecution);
        readAntennaBooleanSetting(reader, "showCopyrightStatements", false, toolConfigBuilder::setShowCopyrightStatements);
        readAntennaBooleanSetting(reader, "isMavenInstalled", false, toolConfigBuilder::setMavenInstalled);

        // Other lists
        readStringListSetting(reader, "filesToAttach", toolConfigBuilder::setFilesToAttach);
        readFileListSetting(reader, "configFiles", toolConfigBuilder::setConfigFiles);

        return toolConfigBuilder;
    }

    public  AntennaCLISettingsReader();
    public  AntennaCLISettingsReader(String pluginDescendantArtifactName);

}