package com.sap.ide.refactoring.core.execution.participation;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Map;
import com.sap.ide.refactoring.core.execution.participation.AbstractCommandExecutionParticipant.ParticipantDescriptor;
/**
* Container class used to collect contributions.
*
* @author Stephan Erb (d049157)
*
*/
public class ContributionMap {
private final Map<ParticipantDescriptor, Collection<ContributionInfo>> contributions;
public ContributionMap(Map<ParticipantDescriptor, Collection<ContributionInfo>> contributions) {
this.contributions = contributions;
}
/**
* The map can be queried with the {@link ParticipantDescriptor}s of the individual
* refactoring participants.
*/
public Collection<ContributionInfo> getContributionsOfParticipant(ParticipantDescriptor descriptor) {
if (contributions.containsKey(descriptor)) {
return contributions.get(descriptor);
} else {
return Collections.emptyList();
}
}
public Collection<ContributionInfo> getAllContributions() {
Collection<ContributionInfo> flattenedContributions = new ArrayList<ContributionInfo>();
for (Collection<ContributionInfo> values : contributions.values()) {
flattenedContributions.addAll(values);
}
return flattenedContributions;
}
}