package sk.stuba.fiit.perconik.activity.serializers.refactor; import java.util.Map; import org.eclipse.ltk.core.refactoring.RefactoringContribution; import org.eclipse.ltk.core.refactoring.RefactoringCore; import org.eclipse.ltk.core.refactoring.RefactoringDescriptor; import sk.stuba.fiit.perconik.data.content.StructuredContent; import sk.stuba.fiit.perconik.eclipse.ltk.core.refactoring.RefactoringFlag; import static com.google.common.collect.Iterables.transform; import static sk.stuba.fiit.perconik.data.content.StructuredContents.key; import static sk.stuba.fiit.perconik.utilities.MoreStrings.toLowerCaseFunction; public final class RefactoringDescriptorSerializer extends AbstractRefactoringDescriptorSerializer<RefactoringDescriptor> { public RefactoringDescriptorSerializer(final Option ... options) { super(options); } public RefactoringDescriptorSerializer(final Iterable<Option> options) { super(options); } static void putRefactoringDescriptor(final StructuredContent content, final RefactoringDescriptor descriptor) { content.put(key("timestamp"), descriptor.getTimeStamp()); content.put(key("identifier"), descriptor.getID()); content.put(key("description"), descriptor.getDescription()); content.put(key("comment"), descriptor.getComment()); content.put(key("flags"), transform(RefactoringFlag.setOf(descriptor.getFlags()), toLowerCaseFunction())); content.put(key("project", "name"), descriptor.getProject()); RefactoringContribution contribution = RefactoringCore.getRefactoringContribution(descriptor.getID()); if (contribution != null) { Map<String, String> arguments = contribution.retrieveArgumentMap(descriptor); content.put(key("arguments"), arguments); } } }