public ProjectConfigImpl(ProjectConfig projectConfig) { name = projectConfig.getName(); path = projectConfig.getPath(); description = projectConfig.getDescription(); type = projectConfig.getType(); mixins = new ArrayList<>(projectConfig.getMixins()); problems = new ArrayList<>(projectConfig.getProblems()); attributes = projectConfig .getAttributes() .entrySet() .stream() .collect(toMap(Map.Entry::getKey, e -> new ArrayList<>(e.getValue()))); SourceStorage sourceStorage = projectConfig.getSource(); if (sourceStorage != null) { source = new SourceStorageImpl( sourceStorage.getType(), sourceStorage.getLocation(), sourceStorage.getParameters()); } }