All Downloads are FREE. Search and download functionalities are using the official Maven repository.

gumtree.spoon.diff.support.SpoonSupport Maven / Gradle / Ivy

package gumtree.spoon.diff.support;

import com.github.gumtreediff.matchers.Mapping;
import com.github.gumtreediff.tree.ITree;

import gumtree.spoon.builder.SpoonGumTreeBuilder;
import gumtree.spoon.diff.Diff;
import spoon.reflect.declaration.CtElement;

/**
 * 
 * @author Matias Martinez
 *
 */
public class SpoonSupport {

	public CtElement getMappedElement(Diff diff, CtElement elementToMatch, boolean isFromSource) {

		for (Mapping mapping : diff.getMappingsComp().asSet()) {
			ITree matchingNode = isFromSource ? mapping.getFirst() : mapping.getSecond();
			CtElement associatedElement = (CtElement) matchingNode.getMetadata(SpoonGumTreeBuilder.SPOON_OBJECT);
			if (elementToMatch == associatedElement) {
				ITree linked = isFromSource ? diff.getMappingsComp().getDst(matchingNode)
						: diff.getMappingsComp().getSrc(matchingNode);
				return (CtElement) linked.getMetadata(SpoonGumTreeBuilder.SPOON_OBJECT);
			}
		}

		return null;
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy