/** * @param userSettings to be validated. * @return the passed in userSettings if validation passed without exception * @throws IllegalArgumentException if the userSettings contain a key of an XCode setting that is * managed by the plugin. */ private static final Map<String, String> validateUserSettings(Map<String, String> userSettings) { for (String key : userSettings.keySet()) { if (ManagedSetting.forName(key.trim()) != null) { throw new IllegalArgumentException( "Setting '" + key + "' contained in user settings. This settings is managed by the plugin and must not be provided from outside."); } } return userSettings; }
Settings(Map<String, String> userSettings, Map<String, String> managedSettings) { if (userSettings == null) { this.userSettings = Collections.emptyMap(); } else { this.userSettings = Collections.unmodifiableMap(new HashMap<String, String>(userSettings)); } validateUserSettings(this.userSettings); if (managedSettings == null) { this.managedSettings = Collections.unmodifiableMap(new HashMap<String, String>(REQUIRED)); } else { Map<String, String> _managedSettings = new HashMap<String, String>(); for (Map.Entry<String, String> e : managedSettings.entrySet()) { if (e.getKey() == null || e.getKey().trim().isEmpty()) throw new IllegalArgumentException( "Empty key found in settings. Value was: '" + e.getValue() + "'."); if (ManagedSetting.forName(e.getKey().trim()) == null) throw new IllegalArgumentException( "Setting with key '" + e.getKey() + "' and value '" + e.getValue() + "' was provided. This setting is managed by the plugin" + "and must not be provided as managed setting."); if (e.getValue() == null) { if (e.getKey().equals(ManagedSetting.CODE_SIGN_IDENTITY.name())) { throw new IllegalArgumentException( "CodesignIdentity was empty: '" + e.getValue() + "'. If you want to use the code" + " sign identity defined in the xCode project configuration just do" + " not provide the 'codeSignIdentity' in your Maven settings."); } throw new IllegalArgumentException("No value provided for key '" + e.getKey() + "'."); } _managedSettings.put(e.getKey(), e.getValue()); } _managedSettings.putAll(REQUIRED); this.managedSettings = Collections.unmodifiableMap(new HashMap<String, String>(_managedSettings)); } }